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);
};
})();
答案 0 :(得分:1)
这称为事件委托。我们的想法是将事件绑定到其中一个父节点,并从事件冒泡中受益。例如,您可以将事件绑定到body标签:
document.body.addEventListener('click', function(e) {
if (e.target.id == 'backtotop') {
self.scrollTop();
}
}, false);
您需要在事件处理程序内过滤必要的目标。
在这种情况下,在事件初始化之前,#backtotop
不需要在DOM中可用。