使用UI对话框。 jquery 1.4.2
我有我的代码在外面点击时关闭对话框。 这对我不起作用。但是,如果我在本地开发上升版,它可以正常工作。 问题是,我不能为网站的这一部分提供jquery版本。
如何在非模态对话框外点击以关闭?
// Close Pop-in If the user clicks anywhere else on the page
jQuery('body')
.bind(
'click',
function(e){
if(
jQuery('.detailsPopup').dialog('isOpen')
&& !jQuery(e.target).is('.ui-dialog, a')
&& !jQuery(e.target).closest('.ui-dialog').length
){
jQuery('.detailsPopup').dialog('close');
}
}
);
答案 0 :(得分:1)
你可以试试这个:
http://jsfiddle.net/GKfZM/117/
它正在运行1.4.4,但试一试。适用于autoOpen
真或假。
$('#open').click(function() {
$('#your-dialog-id').dialog('open');
closedialog = 0;
});
var closedialog;
function overlayclickclose() {
if (closedialog) {
$('#your-dialog-id').dialog('close');
}
//set to one because click on dialog (focus) box sets to zero
closedialog = 1;
}
$('#your-dialog-id').dialog({
autoOpen: false,
open: function() {
closedialog = 1;
$(document).bind('click', overlayclickclose);
},
focus: function() {
closedialog = 0;
},
close: function() {
$(document).unbind('click');
},
buttons: {
Submit: function() {
$(this).dialog('close');
}
}
});
答案 1 :(得分:0)
$(document).click(function(e) {
if (e.target.classList.contains('ui-widget-overlay'))
{
$( "#yourDialogId" ).dialog("close");
}
});