jQuery UI 对话框:单击外部时关闭

GTS*_*Joe 1 javascript jquery dialog

我有一个 jQuery UI 对话框。我尝试实现“$('.ui-widget-overlay').bind('click'....”方法,建议在用户单击外部时关闭对话框。但是,它不适用于我的代码。我做错了什么?

$('input[name="delete-image"]').click(function(e){
    e.preventDefault();
    $("div.deleteImageDialog").dialog({
        resizable: false,
        modal: true,
        buttons: {
            "OK": function(e) {
                e.preventDefault();
                $.ajax({
                    url: $('form.addEdit').attr('action'),
                    type: $('form.addEdit').attr('method'),
                    data: $('form.addEdit').serialize(),
                    open: function(){
                                $('.ui-widget-overlay').bind('click', function(){
                                    $('div.deleteImageDialog').dialog('close');
                                })
                    },
                    success: function(html) { }
                });
                $(this).dialog('close');
            },
            "Cancel": function() {
                $(this).dialog('close');
            }
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

App*_*eer 5

然后你必须将一个事件绑定到覆盖层。

$('input[name="delete-image"]').click(function(e){
    e.preventDefault();
    $("div.deleteImageDialog").dialog({
            // your code...
            "Cancel": function() {
                $(this).dialog('close');
            }
        }
    });
    $('.overlay_sector').bind( 'click', function() {
            $("div.deleteImageDialog").dialog('close');
            $('.overlay_sector').unbind();
    } )
});
Run Code Online (Sandbox Code Playgroud)