2010-07-27 24 views
1

我正在使用jQuery插件jqModaljqModal jQuery插件 - 如何设置超时模式弹出?

新来的,所以我仍然在学习它的用法。

我想要做的是显示弹出窗口说3秒,然后自动关闭。

基本上,这里是我想要的事件流:

  1. 我的页面加载。
  2. 显示模式弹出窗口“连接到我的网站..”
  3. (3秒后)模式弹出窗口自动关闭。
  4. 刷新页面(window.location.reload());

这是我迄今(它不是太大):

HTML:

<div id="jqPopupModal" style="display: none;">Connecting to My Site...</div> 

JS:

window.onload = function() { 
    showPopup(); 
    window.location.reload(); 
} 

function showPopup() { 
    $('#jqPopupModal').jqm({ modal: true }); 
    $('#jqPopupModal').jqmShow(); 
} 

有一些说法,我可以传递给。 jqmShow()函数为窗口设置超时时间?或者我应该钩入onShow回调并做一个简单的setTimeout?

如果第2步和第4步异步发生,换句话说,在显示jQuery弹出窗口时刷新页面也会很好。

任何想法?

编辑:

好了,我已经拿到了开启/关闭延迟的工作,但不能与window.location.reload()。把这是根本没有延迟发生。

这里是我的代码:

function fbcPopupOnShow() {{ 
       $('#fbcModalPopup').show(); 
       window.location.reload(); 
       window.setTimeout(new function() {{ 
        $('#fbcModalPopup').jqmHide(); 

       }}, 1000); 
      }} 

      function showFacebookConnectPopup() {{ 
       $('#fbcModalPopup').jqm({{ 
        modal: true, 
        onShow: fbcPopupOnShow 
       }}); 

       $('#fbcModalPopup').jqmShow(); 
      }} 

我希望window.location.reload()将重新加载而弹出的父窗口正在显示,没有一个或另一个。

编辑2:

想通了不能做的重装和弹出式异步,作为jqModal弹出心不是真正的“弹出式”(即不是催生了一个新的窗口)。这只是一个隐藏的DIV。

因此,我刚刚更改了我的代码,以便在窗口隐藏后重新加载。

回答

2

使用onShow事件在延迟之后关闭它(需要jQuery 1.4+),否则您可以使用javascript超时关闭弹出窗口。

var autoClose = function(hash) { $('#jqPopupModal').delay(3000).jqmHide(); }; 
$('#jqPopupModal').jqm({ modal: true, onShow:autoClose}); 
+0

是的,这就是我一直在尝试。这工作,(打开窗口,关闭)等,但试图让它与window.location.reload()工作是导致问题。更新的问题。 – RPM1984 2010-07-28 07:36:23