【问题标题】:jquery dialog close with checkboxjQuery对话框关闭复选框
【发布时间】:2012-10-29 22:29:17
【问题描述】:

我在 jsp 页面上有一个带有复选框的对话框。单击超链接时会打开此对话框。

我试图实现的功能受以下规则约束:

  1. 只有当里面的复选框被选中时,对话框才会关闭。
  2. 如果对话框重新打开并且复选框已被选中,用户可以单击页面上的任意位置将其关闭。
  3. 如果对话框重新打开并且复选框未选中或未选中,则用户只能通过选中复选框来关闭对话框。

    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(),我知道它已被弃用。

【问题讨论】:

    标签: dialog jquery


    【解决方案1】:

    尝试将您的 .ui-widget-overlay 事件绑定更改为

    $('.ui-widget-overlay').live('click', function(e) {
    ...
    

    然后在 else 中做一个e.stopPropagation()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多