jQuery如何实现在自调用函数内部声明事件侦听器而不进入window.onload,而JavaScript返回null。
(function() {
// returns null
document.querySelector('#backtotop').addEventListener(self.scrollTop, false);
window.onload = function() {
// attaches event correctly
document.querySelector('#backtotop').addEventListener(self.scrollTop, false);
};
})();
最佳答案
这称为事件委托。这个想法是将事件绑定到父节点之一,并从事件缓冲中受益。例如,将cam bind事件绑定到body标签:
document.body.addEventListener('click', function(e) {
if (e.target.id == 'backtotop') {
self.scrollTop();
}
}, false);
您将需要在事件处理程序中过滤必要的目标。
在这种情况下,在事件初始化之前
#backtotop
不必在DOM中可用。