我不認爲將名爲flag
一個boolean
數據類型是非常全面的,尤其是當OP似乎並不明白了布爾的需要。它沒有告訴他他需要做什麼。上面的答案是正確的,但是未來人們在使用這個問題時可能並不全面,他們可能不明白「flag」的含義。
不知道何時使用boolean
數據類型是一個更大的問題的症狀,應該解釋,所以OP不會無知。
你需要的是一個boolean variable。基本上,你想檢查是否有事。我們已經滾動到這個位置了嗎?不,所以讓我們觸發它。我們已經這樣做了嗎?然後它不會再滾動,直到頁面刷新。
讓我們來創建bool:var scrolledToPosition = false;
。這必須放置在滾動邏輯的以外的,否則它將每一次都被重置,並且它將不起作用。
您希望它最初設置爲false,因此即將推出的附加邏輯將正確觸發。
然後,在您的if語句中,if (st > lastScrollTop)
,您需要添加&& !scrolledToPosition
。
感嘆號的意思是「不」。例如,如果bool scrolledToPosition
等於false,則可以使用!booleanValue
進行檢查。您可以排除感嘆號來檢查它是否爲真。例如,if (scrolledToPosition)
。
下面是完整的代碼:
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;
}
});
如果你需要重置,只需設置scrolledToPosition
到false
。像這樣:
scrolledToPosition = false;
感謝您的深入解釋! – ivanasetiawan
不客氣。如果這回答了您的問題,並且這是正確的,請檢查我們的答案之一作爲正確的解決方案。 –