我有一个简单的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();
});
提前感谢您提供任何帮助!
答案 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'
);