2016-05-03 53 views
5

我知道有关于这个问题的一些类似的问题,但我没有任何解决方案可以帮助我。AngularJS窗口滚动事件不会触发

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

我我想最后的代码为以下几点:

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

但我也试过这样:

等等,但没有任何作品。

任何人都可以告诉我我做错了什么吗?

更新:我试过指令的东西,这与Safari浏览器完美的罚款,但不与铬。这是怎么回事?

Update2:使用shift键时,它可以与chrome移动视图一起使用。 Chrome对苹果触控板有任何限制吗? WTF?

+0

我认为这可能取决于您使用此代码。在控制器中,在指令链接等。你可以发布一些更多的代码? – Red2678

+0

在添加事件侦听器的时候,dom可能还没有准备好。将其添加到指令的链接方法中,它应该可以工作。请看看这个[SO问题]的答案(http://stackoverflow.com/questions/20253322/angular-js-scroll-window)。 – AWolf

回答

2

我只想用

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

或者你可以使用

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

Angular有一些内置的jquery功能,使用angular.element –

+2

你可能会觉得这很有用:http://jsfiddle.net/88TzF/ –

+0

好吧,适用于Safari,但不与铬。任何想法为什么这是如此以及如何修复它? – threxx

相关问题