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中可用。

09-25 18:39