【问题标题】:Make script run once per pageload使脚本每次页面加载运行一次
【发布时间】:2017-01-27 00:26:15
【问题描述】:

如何进行以下操作,每次页面加载仅运行一次...

$(window).scroll(function(){
    if($(document).scrollTop()>=$(document).height()/5)
        $("#spopup").show("slow");else $("#spopup").hide("slow");
});

这是我用来关闭弹出窗口的方法,以防万一……

function closeSPopup(){
    $('#spopup').hide('slow');
}

http://codepen.io/john84/pen/vgWVRp

我正在阅读 .one() 函数,但不确定将其放在哪里

http://api.jquery.com/one/

【问题讨论】:

  • 也许这样的事情会有所帮助? pastebin.com/BsL402Gr
  • 谢谢,但该示例根本没有触发脚本。

标签: javascript scroll popup window


【解决方案1】:

在函数调用结束时,重新定义函数。

$(window).scroll(function(){
  if($(document).scrollTop()>=$(document).height()/5)
    $("#spopup").show("slow");else $("#spopup").hide("slow");
  $(window).scroll(function(){});
});

第一次滚动时,它将执行函数(基于您的 if/else),完​​成该操作后,它会清除滚动链接到的 javascript

【讨论】:

  • 谢谢彼得,但不幸的是弹出窗口仍然存在
【解决方案2】:

有很多方法可以做到这一点。我认为设置一个标志会起作用:

var isopen = false;
$(window).on('scroll', function(){
    if($(document).scrollTop() >= $(document).height()/5 && isopen == false) {
        $("#spopup").show("slow");
        isopen = true;
        $(window).off('scroll');
    }
});

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2014-02-03
    • 2020-11-27
    相关资源
    最近更新 更多