关闭jquery模式对话框很慢

Tom*_*Tom 3 jquery jquery-ui

我有一个模态对话框,我将html表单的内容放在里面.表单有一个提交和取消按钮.我找到了取消按钮,甚至通过点击x很慢来关闭对话框.它只有几秒钟太慢,但它足够长,认为有一个问题,疯狂的鼠标答题器可能会疯了.

是否有更好的方法来使用close函数和更好的方法来取消更改,而不是我正在做的事情:

var $dialog = $('#cameraform').dialog({
    modal:true,
    autoOpen: false,
    resizable:false,
    width: 625,
    close: function() {
        $(this).dialog('close'); //this is slow
    }
}); //init dialog

//events            
$('.addwebcam').click(function(e) {
    $dialog.dialog('open');
});

$(".cancel_changes").click(function() {
    $dialog.dialog('close');    //this is slow
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<button class="addwebcam">Add Webcam</button>
<div id="cameraform" title="Add a camera">
...//my form
<button type='button' class='cancel_changes' name='cancel_changes' value='Cancel'>Cancel</button>
</div>
Run Code Online (Sandbox Code Playgroud)

我可以在这做任何优化吗?提前致谢.

Joh*_*ner 5

摆脱对话框设置中关闭事件的近距离调用:

var $dialog = $('#cameraform').dialog({
    modal:true,
    autoOpen: false,
    resizable:false,
    width: 625,
    close: function() {
      //  $(this).dialog('close'); //this is slow
    }
}); //init dialog
Run Code Online (Sandbox Code Playgroud)

您正在从内部调用close事件,从而导致调用堆栈溢出.

  • @Tom no,该钩子允许您在对话框关闭时自动执行其他操作. (2认同)