Javascript AngularJS窗口滚动事件未触发
我知道在这个问题上也有一些类似的问题,但是我认为没有一个解决方案可以帮助我 我正在使用AngularJS,希望检测滚动事件。关于如何获取事件,我尝试了很多版本,但最多在第一次加载时触发,然后再也不会触发 我最后尝试的代码如下:Javascript AngularJS窗口滚动事件未触发,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我知道在这个问题上也有一些类似的问题,但是我认为没有一个解决方案可以帮助我 我正在使用AngularJS,希望检测滚动事件。关于如何获取事件,我尝试了很多版本,但最多在第一次加载时触发,然后再也不会触发 我最后尝试的代码如下: $($window).on('scroll', alert('scrolled')); 但我也试过: 或者只是简单的JQuery.scroll()事件 window.onscroll=功能(ev) 还有更多,但没有任何效果 有人能告诉我我做错了什么吗 更新:我尝试
$($window).on('scroll', alert('scrolled'));
但我也试过:
- 或者只是简单的JQuery.scroll()事件
- window.onscroll=功能(ev)
$(window).scroll(function () { alert('scrolled') })
或者你可以用
angular.element($window).bind("scroll", function(e) {
alert('scrolled')
})
不需要使用angular.element() 将$window注入控制器, 使用window.onscroll事件
$window.onscroll=函数(){
log('窗口被滚动!');
};代码>我认为这可能取决于您在何处使用此代码。在控制器中,在指令链接中,等等。您可以发布更多的代码吗?在您添加事件侦听器时,dom可能还没有准备好。将它添加到指令的链接方法中,它应该可以工作。请看一下答案。Angular有一些内置的jquery功能,使用Angular.elementokay与Safari一起使用,但不与chrome一起使用。知道为什么会这样吗?如何修复它?请尝试使用jsfiddle中所示的指令。这将确保您的侦听器不会创建得太迟或太早。