我有一个(相对简单的)问题,而且我正在为它苦苦思考。
这个问题非常简单 - scroll
事件永远不会触发。
我正在编写这个 Angular 项目,所以我尝试了以下方法:
angular.element($window).bind('scroll', ()=> {
console.log('scroll!');
if (!scope.scrollPosition) {
scope.scrollPosition = 0;
}
// Alerting for test cause wtf is going on
scope.boolChangeClass = this.pageYOffset > 600 ? alert(true) : alert(false);
scope.scrollPosition = this.pageYOffset;
scope.$apply();
}
);
但是什么都没发生。(假设$window
完好无损,我在使用webpack等工具。)如果我将scroll
更改为click
,那么这个例子就很好用了。奇怪。
所以我尝试了原生JavaScript!
window.addEventListener('scroll',function(){
console.log('test')
})
这个尝试在除了我的网站之外的所有其他网站上都有效(我必须承认这很经典)。
那么,有没有人遇到过这种情况并知道发生了什么?
我认为某些其他元素在早期阶段消耗了此事件,因此不允许其冒泡。但这只是一个假设。
希望能够理解这个问题 :)
===编辑===
我已经尝试使用
monitorEvents(window)
(使用Chrome)查看所有触发的事件,并且我可以看到被触发的每个事件,除了滚动事件...