如何在JQM弹出后关闭对话框?

时间:2013-03-17 15:42:46

标签: jquery jquery-mobile

我通过jQuery Mobile对话框小部件加载一个页面,如果我在加载页面中使用弹出消息,我无法在ios 6.1.2上弹出后关闭它。这是一个例子:

jQuery.post(
    ajax_url+'create',
    {'info': send_values},
    function(result){
        if(result.status){
            //Without this message all works fine
            jQuery('#popup-message').text(result.message).popup('open');
            setTimeout(function(){
                // Tried
                // jQuery('#popup-error').popup('close');
                // jQuery('#popup-message').popup('close');
                // jQuery('.ui-dialog').dialog('close');
                jQuery('#dialog').dialog('close'); //loaded div is with dialog id
            }, 2000);
        }
        else
            showError(result.message);
    },
    'JSON'
)

1 个答案:

答案 0 :(得分:0)

修改

问题是如何在弹出窗口

中打开后关闭对话框

好的,现在我明白了;)

所以有一个你可以倾听的事件,在弹出 之后被称为

$( ".Selector" ).on( "popupafteropen", function( event, ui ) {} );

的src:http://api.jquerymobile.com/popup/#event-afteropen

所以你的代码更新应该是:

jQuery.post(
ajax_url+'create',
{'info': send_values},
function(result){
    if(result.status){
        //Without this message all works fine
        jQuery('#popup-message').text(result.message).popup('open');
        jQuery('#popup-message').on('popupafteropen', function( event, ui ) {
            setTimeout(function(){
                // Tried
                // jQuery('#popup-error').popup('close');
                // jQuery('#popup-message').popup('close');
                // jQuery('.ui-dialog').dialog('close');
                jQuery('#dialog').dialog('close'); //loaded div is with dialog id
            }, 2000);
        } );
    }
    else
        showError(result.message);
},
'JSON'
)

原始答案

您正在尝试关闭DIALOG ...但是您打开了POP-UP。

变化:

 jQuery('#dialog').dialog('close'); //loaded div is with dialog id

要:

 jQuery('#dialog').popup('close'); //loaded div is with dialog id

src:http://api.jquerymobile.com/popup/#method-close