Событие закрытия диалога jquery никогда не запускается? - PullRequest
1 голос
/ 04 марта 2012

У меня есть следующие настройки для моего диалогового окна 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") в событии «close» никогда не отображается. Что я сделал не так?

UPDATE: Если я уберу эту строку

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

из определения диалога, тогда он работает нормально ...

Это ошибка? Или ожидаемое поведение?

Ответы [ 2 ]

1 голос
/ 21 ноября 2014

Я считаю, что это ошибка, которая была устранена в более поздней версии.Смотрите здесь .jQuery-ui 1.9.1 - хорошая ставка для решения этой проблемы.

Если вы не хотите обновлять свой источник, пункт Горана в комментарии также работает для меня.Поменяйте местами событие close для beforeClose, и оно должно сработать и быть примерно эквивалентным в зависимости от того, что вы надеетесь достичь.

Спасибо за публикацию вопроса и выяснение корреляции с опцией hide!

0 голосов
/ 04 марта 2012

Я думаю, вам нужно использовать "Cancel" вместо Cancel в buttons части.

...