Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-记住页面刷新后是否激活了定时弹出窗口_Jquery_Cookies_State_Activation - Fatal编程技术网

jQuery-记住页面刷新后是否激活了定时弹出窗口

jQuery-记住页面刷新后是否激活了定时弹出窗口,jquery,cookies,state,activation,Jquery,Cookies,State,Activation,我有一个页面,上面有一个包含表单的弹出式覆盖,20秒后会自动显示,或者通过在div上单击操作显示 我需要它工作,以便在发送表单后刷新页面时,覆盖的计时器不会再次启动,也就是说,如果单击覆盖的链接,计时器不会继续-基本上我需要它记住是否已触发,以便覆盖仅触发一次 函数的jquery如下所示: //popup button click function $('#popup_launcher').click(function(){ $('#overlay').show(1000);

我有一个页面,上面有一个包含表单的弹出式覆盖,20秒后会自动显示,或者通过在div上单击操作显示

我需要它工作,以便在发送表单后刷新页面时,覆盖的计时器不会再次启动,也就是说,如果单击覆盖的链接,计时器不会继续-基本上我需要它记住是否已触发,以便覆盖仅触发一次

函数的jquery如下所示:

//popup button click function
  $('#popup_launcher').click(function(){
    $('#overlay').show(1000);
         $('html, body').animate({scrollTop:0}, 'slow');
      return false;
 });

 //close button click function
  $('#close').click(function(){
    $('#overlay').hide(1000);
 });

// popup timer function - change last value eg 20000 (20 seconds) to set time in milliseconds
        setTimeout(function() {  
                $('#overlay').show(1000);
                $('html, body').animate({scrollTop:0}, 'slow');
}, 20000);
此处正在开发页面(表单提交尚未激活): 谢谢你的帮助, 亚伦


这将只执行一次单击事件,然后将其自身删除。

我将使用会话存储

// on page load
sessionStorage.overlay = 0;

// on click
sessionStorage.overlay = 1;

// time triggers overlay
sessionStorage.overlay = 2;
要检索:

if(sessionStorage.overlay < 2){
    // load form magic
}

这应该涵盖所有人。

.one()只是用于一次执行然后解除绑定的.on()事件,但我相信刷新页面只会重新初始化绑定。@lifeintergrey是的,它会重新初始化绑定,我错过了关于发回的部分。他可以在回发中包含一个新脚本,指示不进行绑定,并可以跨浏览器工作。很好的呼叫。。。我将修改我的答案,说是IE7-写那个脚本。感谢大家的反馈-我很难让sessionStorage方法正常工作,因此如果链接被点击,计时器将被禁用,如果计时器已经触发了覆盖,刷新时?更新我的答案,以显示一种简单的方法来验证这两种方法都发生了。
if(sessionStorage.overlay < 2){
    // load form magic
}
if(window.sessionStorage){
    // do the above code
} else {
    // reference postback script
}