jQuery – 滚动function保持触发:只有一次请
我有以下jQuery函数,当用户水平滚动超过500像素时触发aTestEvent()
:
jQuery(document).scroll(function(){ if(jQuery(this).scrollLeft() >= 500){ aTestEvent(); }});
这是问题所在:我只想触发一次aTestEvent()
! 但是,每次用户滚动回页面的开头然后再次超过500像素时,再次触发aTestEvent()
。
我们如何调整上面的代码,以便触发器仅在用户第一次滚动超过500像素时发生?
您可以使用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(); } });