我有一个我在下面指出的jquery代码。这些代码运行,当我开始滚动时(我的意思是滚动的高度超过100)
但是我想在100的高度之后立即跑一次,而不是不止一次跑。
$(window).scroll(function(){
if ($(window).scrollTop() > 100 ){
//some codes...
}
});
我该怎么做?谢谢:))
答案 0 :(得分:2)
只要符合条件,就解除滚动处理程序的绑定:
$(window).scroll(function(){
if ($(window).scrollTop() > 100 ){
//Kill the handler
$(window).off("scroll");
//some codes...
}
});
答案 1 :(得分:0)
使用
$(window).unbind('scroll');
当你第一次进入时
$(window).scroll(function(){
if ($(window).scrollTop() > 100 ){
$(window).unbind('scroll');
//some codes...
}
});
答案 2 :(得分:0)
将滚动事件绑定到$(window)
,然后在scrollTop() > 100
时,执行您的操作,然后从$(window)
取消绑定滚动事件
$(document).ready(function() {
$(window).bind('scroll', function() {
if ($(this).scrollTop() > 100) {
$('body').prepend('Scroll top > 100');
$(window).unbind('scroll');
}
});
});

body { min-height: 1000px }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 3 :(得分:0)
确定这可以在全局变量或标志的帮助下完成,以便看到效果首先将大量数据放入页面,以便您可以看到垂直滚动。
<script>
var flag = 0;
$(document).ready(function() {
$(window).scroll(function() {
if (flag == 0) {
if ($(window).scrollTop() > 100) {
alert('1st time');
flag = 1;
}
} else if (flag == 1) {
alert('second time and u can comment this alert');
}
});
});
</script>
答案 4 :(得分:0)
.off()函数将在第一次之后停止触发该函数。
$(document).ready(function () {
$(window).on('scroll.myEvent', function() {
if ($(document.body.scrollTop > 100))
{
$(window).off('scroll.myEvent');
alert('fired');
}
});
});
Example: http://jsfiddle.net/2k3s9jx8/