jQuery mobile popup on pageinit

后端 未结 2 1575
盖世英雄少女心
盖世英雄少女心 2021-01-19 04:55

I want a popup to open as soon as the page loads but seem to be getting stuck with the spinning wheel.

Here is a fiddler to demonstrate the problem any help would be

相关标签:
2条回答
  • 2021-01-19 05:38

    The .popup('open') needs the $.mobile.activePage, which is set after the pageinit event. The pagechange event seems to be better for popups.

    This worked for me :

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

    If you want it just at the first load, use .one :

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

    See https://github.com/jquery/jquery-mobile/issues/3384

    0 讨论(0)
  • 2021-01-19 05:45

    This worked for me:

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

    You had a race condition and this places the popup code at the end of the queue.

    Here is a demo: http://jsfiddle.net/UGfXG/6/

    Note: I replaced .live() with .on() (the delegated flavor) as the former has been depreciated as of jQuery 1.7.

    0 讨论(0)
提交回复
热议问题