JavaScript / jQuery eventListener - 在window.onload之外声明

时间:2014-03-27 21:19:20

标签: javascript jquery events javascript-events

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);
  };
})();

1 个答案:

答案 0 :(得分:1)

这称为事件委托。我们的想法是将事件绑定到其中一个父节点,并从事件冒泡中受益。例如,您可以将事件绑定到body标签:

document.body.addEventListener('click', function(e) {
    if (e.target.id == 'backtotop') {
        self.scrollTop();
    }
}, false);

您需要在事件处理程序内过滤必要的目标。

在这种情况下,在事件初始化之前,#backtotop不需要在DOM中可用。