jquery对话关闭事件永远不会触发?

时间:2012-03-04 18:58:32

标签: jquery jquery-ui jquery-ui-dialog

我的jquery ui对话框有以下设置。

$("#dayEditForm").dialog({
        autoOpen: false,
        height: 475,
        width: 750,
        title: "Edit",
        modal: true,
        show: 'drop',
        hide: { effect: "drop", direction: "right" },
        open: function () {
            $("#editForm").validate();
        },
        close: function () {
            alert("closing dialog");
            $("#editForm").resetForm();
        },
        buttons: {
            "Save": function () {
                var isValid = $("#editForm").valid();
                if (isValid) {
                    // Save stuff here
                    $(this).dialog("close");
                }
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        }
    });

但是,“关闭”事件中的alert("closing dialog")从未显示。我做错了什么?

更新: 如果我删除此行

hide: { effect: "drop", direction: "right" }

从对话框定义,然后它工作正常......

这是一个错误吗?或预期的行为?

2 个答案:

答案 0 :(得分:1)

我相信这是一个在更高版本中解决的错误。见here。 jQuery-ui 1.9.1是解决这个问题的好办法。

如果您不想升级您的来源,Goran在评论中的观点也适用于我。交换close的{​​{1}}事件,它应该触发并大致相等,具体取决于您希望实现的目标。

感谢您发布问题并找出与beforeClose选项的相关性!

答案 1 :(得分:0)

我认为您需要在"Cancel"部分使用Cancel而不只是buttons