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