Dưới đây là 2 giải pháp khác cho các hộp thoại không modal:
Nếu hộp thoại là phi phương thức Phương pháp 1: phương pháp 1: http://jsfiddle.net/jasonday/xpkFf/
// Close Pop-in If the user clicks anywhere else on the page
jQuery('body')
.bind(
'click',
function(e){
if(
jQuery('#dialog').dialog('isOpen')
&& !jQuery(e.target).is('.ui-dialog, a')
&& !jQuery(e.target).closest('.ui-dialog').length
){
jQuery('#dialog').dialog('close');
}
}
);
Hộp thoại không phải phương thức Phương pháp 2: http://jsfiddle.net/jasonday/eccKr/
$(function() {
$("#dialog").dialog({
autoOpen: false,
minHeight: 100,
width: 342,
draggable: true,
resizable: false,
modal: false,
closeText: 'Close',
open: function() {
closedialog = 1;
$(document).bind('click', overlayclickclose);
},
focus: function() {
closedialog = 0;
},
close: function() {
$(document).unbind('click');
}
});
$('#linkID').click(function() {
$('#dialog').dialog('open');
closedialog = 0;
});
var closedialog;
function overlayclickclose() {
if (closedialog) {
$('#dialog').dialog('close');
}
//set to one because click on dialog box sets to zero
closedialog = 1;
}
});
Là phương thức thoại? –
Về mặt khả năng sử dụng, tôi cho rằng một hành vi lạ khi đóng hộp thoại khi bạn nhấp vào bên ngoài nếu hộp thoại không phải là phương thức. Dù sao, đây là một [giải pháp] (http://stackoverflow.com/questions/8302114/jquery-1-4-2-jquery-ui-dialog-close-when-outside-click-not-modal). –
Có thể [this] [1] hoặc [this] [2] sẽ giúp bạn. [1]: http://stackoverflow.com/questions/8302114/jquery-1-4-2-jquery-ui-dialog-close-when-outside-click-not-modal [ 2]: http: // stackoverflow.com/questions/7919229/click-external-non-modal-dialog-to-close – Bart