jQuery – 滚动function保持触发:只有一次请

我有以下jQuery函数,当用户水平滚动超过500像素时触发aTestEvent()

 jQuery(document).scroll(function(){ if(jQuery(this).scrollLeft() >= 500){ aTestEvent(); }}); 

这是问题所在:我只想触发一次aTestEvent() ! 但是,每次用户滚动回页面的开头然后再次超过500像素时,再次触发aTestEvent()

我们如何调整上面的代码,以便触发器在用户第一次滚动超过500像素时发生?

您可以使用onoff方法:

 $(document).on('scroll', function() { if( $(this).scrollLeft() >= 500 ) { $(document).off('scroll'); aTestEvent(); } }); 

http://jsfiddle.net/3kacd/

请注意:此代码段可以“关闭”特定页面上可用的所有滚动事件,但只滚动目标滚动处理程序而不会打扰其他滚动处理程序,我们可以使用命名空间。 命名空间类似于CSS类,因为它们不是分层的; 只需要一个名称匹配。

 $(document).on('name1.scroll', function() { if( $(this).scrollLeft() >= 500 ) { $(document).off('name1.scroll'); aTestEvent(); } }); 

http://jsfiddle.net/shekhardtu/3kacd/57/