当用户水平滚动超过500像素时,我有以下jQuery函数触发aTestEvent()
:
jQuery(document).scroll(function(){
if(jQuery(this).scrollLeft() >= 500){
aTestEvent();
}});
问题在于:我只希望aTestEvent()
被触发一次!但是,每次用户滚动回到页面的开头,然后再次超过500像素时,再次触发aTestEvent()
。
我们如何调整上面的代码,以便触发仅首次出现用户滚动超过500像素?
答案 0 :(得分:14)
您可以使用on
和off
方法:
$(document).on('scroll', function() {
if( $(this).scrollLeft() >= 500 ) {
$(document).off('scroll');
aTestEvent();
}
});
请注意:此代码段可以“关闭”特定页面上可用的所有滚动事件,但只滚动预期的滚动处理程序而不会打扰其他滚动处理程序,我们可以使用命名空间。命名空间类似于CSS类,因为它们不是分层的;只需要一个名字匹配。
$(document).on('name1.scroll', function() {
if( $(this).scrollLeft() >= 500 ) {
$(document).off('name1.scroll');
aTestEvent();
}
});