动态添加函数到window.onscroll?

时间:2018-03-16 21:57:12

标签: javascript

我知道我只能拨打window.onscroll = function(){}一次,因为多次调用可能会导致他们互相覆盖。这就是为什么我问:可以将函数调用“推”到window.onscroll吗?

//example
function example(num) {
  var number = num;
  window.onscroll = function() {
    number *= number
  }
}
example(2);
example(4);
//this way, the number only changes in the second function call
//somehow it's possible to get the same result? ("adding" functions to window.onscroll
function example(num) {
  var number = num;
  window.onscroll += function() {
    number *= number
  }
}
example(2);
example(4);

如何向window.onscroll“添加”函数调用?

1 个答案:

答案 0 :(得分:4)

使用addEventListener API可以实现这一点。

e.g:

window.addEventListener('scroll', function() {
  console.log('one');
});

window.addEventListener('scroll', function() {
  console.log('two');
});

例如,在this CodePen中,我将两个滚动侦听器绑定到window对象。如果您打开浏览器控制台并滚动底部的预览窗格,您应该会在控制台中看到这两条消息重复。