gpt4 book ai didi

javascript - 如何在特定滚动高度期间仅调用一次函数?

转载 作者:行者123 更新时间:2023-11-28 15:33:04 24 4
gpt4 key购买 nike

我的网页底部有一张 map ,当用户向下滚动到 map 时,我希望删除谷歌标记和特定时间。我已经有这个工作了。问题是它不断调用该函数,如何只调用一次呢?

这是我现在的 JS 代码,我已经尝试找出错误:

      $(window).scroll(function () {

if ($(window).scrollTop() >= $(document).height() - $(window).height() - 300 &&
$(window).scrollTop() <= $(document).height() - $(window).height() - 200
) {

var dropOnlyOnce = (function(){

dropped = false;
if (dropped == false) {
dropMarker(); // this is the function I'm calling
}
dropped = true;

})();

}

});

我怎样才能让它工作或者我怎样才能调用 dropMarker 函数一次?

最佳答案

调用该函数后,您可以删除监听器:

$(window).on('scroll', function(e) {
if( ...window at scrollTop ) {

$(window).off('scroll')
.... Drop your pin
}
})

Esteban Felix 的评论提出了一个很好的观点。这将删除所有滚动处理程序。如果这不适合您,您可以将该函数移到处理程序之外,并且仅删除该函数:

var dropPinOnce = function() {
if( ... window at correct scrollTop ) {
... Drop pin here ...
$(window).off('scroll', dropPinOnce)
}

$(window).on('scroll', dropPinOnce)

关于javascript - 如何在特定滚动高度期间仅调用一次函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com