jQuery UI对话框 - 关闭事件的问题

Sim*_*mon 1 jquery-ui jquery-ui-dialog

我正在尝试在关闭jQuery UI对话框时执行特定操作.这是我的代码的简化版本:

$('a.open-trigger').click(function(){
    var test = 'hello';

    $('#dialog').dialog({
        bgiframe: true,
        dialogClass: 'change', 
        resizable: false,
        draggable: false,
        modal: true,
        height: 334, 
        width: 450,
        autoOpen: false,
        show: 'fade'
    });

    $('#dialog').dialog('open');

    $('a.close-trigger').click(function(){
        alert(test);
        $('#dialog').dialog('close');
    });
});
Run Code Online (Sandbox Code Playgroud)

我第一次关闭对话框时,会收到带有"hello"字样的预期警报.如果我第二次打开对话框并关闭它,我会收到两次"你好"警告.如果我第三次打开和关闭它,我会收到三个警报,依此类推.

为什么这些警报会自行复制?无论我打开/关闭对话框多少次,我都希望警报只在关闭时显示一次.

谢谢!西蒙

geo*_*wa4 8

每次调用时都要附加其他事件处理程序.click.这就是它重复的原因.

$('a.close-trigger').click(function(){
                    alert(test);
                    $('#dialog').dialog('close');
            });
Run Code Online (Sandbox Code Playgroud)

将该代码拉出到与其他事件绑定相同的级别,它应该按预期工作.