jquery 1.4.2-jquery UI对话框,外部单击时关闭(非模态)

jquery 1.4.2-jquery UI对话框,外部单击时关闭(非模态),jquery,jquery-ui,dialog,modal-dialog,Jquery,Jquery Ui,Dialog,Modal Dialog,使用UI对话框。 jquery 1.4.2 我有自己的代码,可以在单击外部时关闭对话框。 这对我不管用。但是,如果我在本地开发中升级该版本,它就可以正常工作。 问题是,我无法为网站的这一部分升级jquery版本 如何实现在非模态对话框外单击以关闭的想法 // Close Pop-in If the user clicks anywhere else on the page jQuery('body') .bind(

使用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');
            }
               }
              );
您可以尝试以下方法:

它正在运行1.4.4,但请尝试一下。适用于
autoOpen
true或false

$('#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.4.4,但请尝试一下。适用于
autoOpen
true或false

$('#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');
    }
  }
});

您使用的是什么版本的jQuery UI?您应该使用一个与古老的jQuery一起工作的jQuery(不确定为什么您认为您不能升级)。您尝试过这个吗?您使用的是什么版本的jQuery UI?您应该使用一个与古老的jQuery一起工作的jQuery(不确定为什么您认为您不能升级)。您尝试过这个吗?