我在jsp页面上有一个带有复选框的对话框。单击超链接时会打开此对话框。
我想要实现的功能受以下规则约束:
如果重新打开对话框并且未选中或取消选中该复选框,则用户只能通过选中复选框来关闭对话框。
function closeDialog() {
var checked = $('.checkboxClass').attr('checked');
$('.ui-widget-overlay').live('click', function() {
if(checked){
$('#'+divId).dialog('close');
}else{
<!-- since unchecked, dialog should not be closed-->
//$(document).unbind('click');
//$('.ui-widget-overlay').unbind('click');
$('.ui-widget-overlay').die('click');
}
});
}
<!-- This detects if checkbox is clicked-->
$('.checkboxClass').live('click', function() {
var checked = $('.checkboxClass').attr('checked');
if(checked){
$('#'+divId).dialog('close');
}
});
我已尝试执行所有操作以执行步骤3,即,如果用户单击对话框外的任何位置,则会阻止对话框关闭,但它会关闭。有任何想法吗?
我使用的是jQuery 1.4,因此我希望保留.live()
,我知道这种情况已被弃用。
答案 0 :(得分:1)
尝试将.ui-widget-overlay事件绑定更改为
$('.ui-widget-overlay').live('click', function(e) {
...
然后在其他地方做一个e.stopPropagation()