我有一些代码,我想做的是触发一个带有滚动的功能,该功能应该在以下位置触发
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');
});
};
});
最佳答案
您需要将 if
语句放在您的窗口 scroll
事件处理程序中:
$(window).scroll(function() {
if (flg == 0) {
clearTimeout(timer);
...
}
});
在覆盖初始 flg
值时,您还需要删除关键字 var
,否则它不会影响全局值,而是创建一个新的局部变量。
关于javascript - 随 setTimeout 改变的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30100490/