【发布时间】:2012-10-29 22:29:17
【问题描述】:
我在 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(),我知道它已被弃用。
【问题讨论】: