我想检查一下我的用户是否到达了我页面中的某个位置。所以我创建了以下JS代码:
$(document).on('scroll', function() {
if($(this).scrollTop()>=$('#page2').position().top){
alert("trigger");
}
})
检查用户是否达到我的id =“page2”。但是我希望这只能触发一次,无论用户是否返回,现在每次page2.position()。top = scrollTop都会触发。
我该怎么做?
答案 0 :(得分:3)
执行所需语句后,您可以使用event.namespace
和off()
取消绑定事件处理程序。
$(document).on('scroll.something', function() {
if ($(this).scrollTop() >= $('#page2').position().top) {
//Do something
//Unbind the event
$(document).off('scroll.something')
}
})
答案 1 :(得分:0)
您可以使用此代码来实现所需的输出。
var checkonce = false;
$(document).on('scroll', function() {
if($(this).scrollTop()>=$('#page2').position().top){
if(checkonce == false) {
alert("trigger");
checkonce = true;
}
}
});
答案 2 :(得分:0)
在第一个off
到达后,您document
可以scroll
滚动事件。
编辑:如果您为活动命名,也会更好,这将有助于我们使用该名称删除特定活动。 (Satpal already mentioned this in his answer before me, I am improving my answer standard as well.
)
$(document).on('scroll.Page2ScrollEvent', function() {
if($(this).scrollTop()>=$('#page2').position().top){
$(this).off('scroll.Page2ScrollEvent'); // remove specific scroll event.
alert("trigger");
}
})