我有一些代码,我想要做的是触发一个带滚动的功能,应该在
上触发if (flg == 0)
但是如果滚动没有发生到5秒,那么另一个函数将触发setTimeout
并且它会将变量flg
值更改为1
并且滚动函数应该会中断,但它不起作用。
setTimeout
正在将变量值更新为1,但即使flg
为1,我也不知道为什么滚动功能正常工作。
$(function() {
var flg = 0;
//Image Load if Not Scroll ---------------------------
var timer = setTimeout(function() {
flg = 1;
console.log (flg + 'change with timer');
}, 5000);
//Image Load On Scroll-----------
if (flg == 0) {
$(window).scroll(function () {
clearTimeout(timer);
flg = 1;
console.log (flg + 'srsc');
});
};
});
答案 0 :(得分:3)
您需要将if
语句放在窗口scroll
事件处理程序中:
$(window).scroll(function() {
if (flg == 0) {
clearTimeout(timer);
...
}
});
您还需要在覆盖初始var
值时删除关键字flg
,否则它不会影响全局值,而是创建新的局部变量。
答案 1 :(得分:0)
您的if
需要位于滚动功能中。
它现在的设置方式是,它在分配回调时检查flg
的值。相反,它应该根据需要检查它:
$(window).scroll(function abc() {
if (flg === 0) {
clearTimeout(timer);
flg = 1;
console.log(flg + 'srsc');
}
});