ajax调用后jQuery Mobile对话框不会关闭

时间:2012-11-05 19:59:46

标签: jquery ajax mobile dialog

我有一个简单的JQM(V 1.1.0)列表视图,其中ajax调用附加到列表中的每个项目。当用户点击其中一个列表项时,对话框后面的页面将使用他们点击的项目进行更新。

问题是当用户点击列表项时对话框不会关闭。如果我使用对话框标题中的(X)关闭按钮,对话框将关闭,对话框后面的页面已按预期更新。

这是我的代码:

$('body').on('tap', 'a.element', function(event) {

//START LOADING ANIMATION
$.mobile.showPageLoadingMsg();

//GET URL FROM MARKUP
bpm.url = $(this).attr('href');

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);


            bpm.dataStorage.trigger('create');


        }    
    },
    'html'
);

//PREVENT DEFAULT BUTTON BEHAVIOR
event.preventDefault();

});

提前感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:1)

您需要在$(<dialog element>).dialog('close');内拨打result == 'success'

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);


            bpm.dataStorage.trigger('create');

            $('#dialogBox').dialog('close');
        }    
    },
    'html'
);

答案 1 :(得分:1)

您实际上并没有告诉对话框在代码中的任何位置关闭,这就是原因。 jQuery不能假设只是因为你以某种方式与对话框交互,你想让它关闭......

尝试类似:

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);
            bpm.dataStorage.trigger('create');

            bpm.closest('.ui-dialog').dialog('close');
        }    
    },
    'html'
);