延时popup10秒,只popup一次

嗨,我正在使用fancybox内联popup窗口提醒视图进行升级。 我正在使用的代码是:

$(document).ready(function() { $("#various1").fancybox(); }); 

我该如何修改它,以便在20秒后自动popup? 但一旦被closures,它就不会再popup来。

其实,之前发布的解决scheme都没有在现实生活中工作,为什么呢? 因为行:

 $("#various1").fancybox(); 

不会触发fancybox,它只是将fancybox绑定到select器#various1,但它仍然需要点击触发模式/灯箱(不popup)。 顺便说一句,Gearóid的解决scheme无论如何都有语法错误。 唯一真正的价值是他们build议使用jQuery cookie插件 (旧网站)。

编辑 🙁 2012年3月7日)jQuery cookie插件主页移到这里 。

工作解决scheme的步骤:

A)在jQuery和fancybox js文件之后加载jQuery cookie插件(如build议)

B)然后使用这个脚本:

 <script type="text/javascript"> function openFancybox() { setTimeout( function() {$('#various1').trigger('click'); },20000); } $(document).ready(function() { var visited = $.cookie('visited'); if (visited == 'yes') { return false; } else { openFancybox(); } $.cookie('visited', 'yes', { expires: 7 }); $('#various1').fancybox(); }); </script> 

C)你仍然需要在你的HTML代码中的某处(可能是隐藏的)

 <a id="various1" href="path/target"></a> 

或内联内容

 <a id="various1" href="#target"></a> <div style="display: none;"> <div id="target">message to display in fancybox</div> </div> 

此外,如果您使用内联内容和fancybox v1.3.x,请检查现有的错误和解决方法

PS。 fancybox不是一个popup窗口,而是一个模式/灯箱的jQuery插件,这是一个非侵入性的解决scheme,如从UI的angular度来看,jGrowl。

 $(document).ready(function() { setTimeout(function () { $("#various1").fancybox(); }, 20000); }); 
 Use Timeout function. The solution for your query is below $(document).ready(function () { setTimeout(function() { $('your modal id').modal('show') }, 10000); //displays modal after 10 seconds }); 

你应该可以使用这个delayfunction:

 $("#various1").delay(20000).fancybox(); 

你应该使用setTimeout来延迟这样的popup窗口:

 setTimeout("showPopup()",20000); function showPopup() { if (null != $.cookie("offer_closed")) $("#various1").fancybox();}); } 

当用户点击closures时,使用jQuery cookie库设置一个cookie(称之为“offer_closed”)为true。 这表示popup窗口已经显示。

PS。 从用户界面的angular度来看,你应该尽量避免使用popup窗口的解决scheme。 用户讨厌他们。 试试像jGrowl这样更优雅的解决scheme。

你可以在javascript中使用setTimeout函数:

 setTimeout(function() { // first wait 20 seconds before this popups $("#various1").fancybox(); setTimeout(function() { //.. what to do after 10 seconds }, 10000); }, 20000); 

我希望这是你想要的? 你的标题和解释是混乱的

请参阅下面的代码示例,在页面加载5秒后popup窗口将打开“欢迎使用网站名称”消息 –

 <head> <script type="text/javascript"> $(document).ready(function(){ openFancybox(); $('#various1').fancybox(); }); function openFancybox() { setTimeout( function() {$('#various1').trigger('click'); },5000); } </script> </head> <body> <a id="various1" href="#target"></a> <div style="display: none;"> <div id="target">welcome to shoesdekho.com</div> </div> </body>