Jquery 如何在使用$(窗口)时注入一次。滚动?
当用户滚动>2000px时,我想运行一次“window.googletag.pubads().refresh();”。我该如何正确地做呢?例如:Jquery 如何在使用$(窗口)时注入一次。滚动?,jquery,scroll,google-dfp,Jquery,Scroll,Google Dfp,当用户滚动>2000px时,我想运行一次“window.googletag.pubads().refresh();”。我该如何正确地做呢?例如: $(window).scroll(function() { var st = $(this).scrollTop(); var lastScrollTop = 2000; if (st > lastScrollTop) { window.googletag.pubads().refresh();
$(window).scroll(function() {
var st = $(this).scrollTop();
var lastScrollTop = 2000;
if (st > lastScrollTop) {
window.googletag.pubads().refresh();
console.log('refresh');
}
});
您可以保留一个全局标志,并在每次滚动时检查该值。您可以检查我的版本:
var flag = false;
var lastScrollTop = 2000;
$(window).scroll(function() {
var st = $(this).scrollTop();
if (st > lastScrollTop && !flag) {
window.googletag.pubads().refresh();
console.log('refresh');
flag = true;
}
});
我认为添加名为
flag
的boolean
数据类型不是很全面,尤其是当OP似乎不理解bool的需要时。它没有告诉他需要什么来完成这件事。上面的答案是正确的,但对于将来在谷歌上搜索这个问题的人来说,这可能并不全面,他们可能不理解你所说的“国旗”是什么意思
不知道何时使用boolean
数据类型是这里需要解释的更大问题的症状,因此OP不会继续无知
你需要的是一份工作。本质上,你需要检查事情是否属实。我们已经滚动到该位置了吗?不,让我们触发它。我们已经这么做了吗?然后,在刷新页面之前,它不会再次滚动
让我们创建bool:var scrolledToPosition=false代码>。这必须放在滚动逻辑之外,否则每次都会被重置,并且无法工作
您希望最初将其设置为false,以便接下来的附加逻辑将正确启动
然后,在if语句中,if(st>lastcrolltop)
,您需要添加&&&!滚动位置
感叹号的意思是“不”。例如,如果bool scrolledToPosition
等于false,您可以使用来检查这一点!布尔值
。您可以排除感叹号以检查它是否为真。例如,if(滚动位置)
以下是完整的代码:
var scrolledToPosition = false;
var lastScrollTop = 2000;
$(window).scroll(function() {
var st = $(this).scrollTop();
if (st > lastScrollTop && !scrolledToPosition) {
window.googletag.pubads().refresh();
console.log('refresh');
scrolledToPosition = true;
}
});
如果需要重置,只需将scrolled位置设置为false
。像这样:
scrolledToPosition = false;
感谢您的深入解释!不客气。如果这回答了您的问题,并且是正确的,请检查我们的答案之一作为正确的解决方案。