pageinit上的jQuery移动弹出窗口

时间:2012-12-07 23:53:42

标签: jquery-mobile page-init

我希望一旦页面加载就打开一个弹出窗口,但似乎卡在旋转轮上。

这是一个小提琴手来展示这个问题,任何帮助都会受到赞赏。

http://jsfiddle.net/Ohpyx/UGfXG/

我正在使用的代码是:

$(document).live('pageinit',function(event){
    $('#popupBasic').popup('open');
})​

2 个答案:

答案 0 :(得分:6)

这对我有用:

$(document).on('pageinit', '.ui-page',function(event){
    setTimeout(function () {
        $('#popupBasic').popup('open');
    }, 0);//Note the comment below from @Taifun.
})​

你有一个竞争条件,这会将弹出代码放在队列的末尾。

以下是演示:http://jsfiddle.net/UGfXG/6/

注意:我将.live()替换为.on()(委托的风格),因为前者已从jQuery 1.7开始折旧。

答案 1 :(得分:0)

.popup('open')需要在$.mobile.activePage事件之后设置的pageinit。对于弹出窗口,pagechange事件似乎更好。

这对我有用:

$(document).on('pagechange',function(event){
    $('#popupBasic').popup('open');
})​

如果您想在第一次加载时使用它,请使用.one

$(document).one('pagechange',function(event){
    $('#popupBasic').popup('open');
})​

请参阅https://github.com/jquery/jquery-mobile/issues/3384