AngularJS窗口滚动事件不会触发

时间:2016-05-03 21:32:37

标签: javascript jquery angularjs

我知道有一些关于这个问题的类似问题,但我没有一个解决方案可以帮助我。

我正在使用AngularJS并希望检测滚动事件。我尝试了很多关于如何获取事件的版本,但是最初它会在第一次加载时触发,然后再也不会发生。

我上次尝试的代码如下:

$($window).on('scroll', alert('scrolled'));

但我也尝试过这个:

还有更多,但没有任何作用。

谁能告诉我我做错了什么?

更新:我尝试了指令的东西,这对于safari BUT非常好,但不是用chrome。怎么回事?

Update2:使用shift键时,它适用于chrome移动视图。铬到苹果触控板有什么限制吗? WTF?

2 个答案:

答案 0 :(得分:5)

我会用

$(window).scroll(function () { alert('scrolled') })

或者你可以使用

angular.element($window).bind("scroll", function(e) {
    alert('scrolled')
})

答案 1 :(得分:2)

不需要angular.element() 将$ window注入您的控制器, 使用window.onscroll事件

$window.onscroll = function (){ console.log('window was scrolled!'); };