Закрыть родительское окно с помощью кнопки в модальном окне (пользовательский интерфейс Kendo)

... Итак, у меня есть код для открытия модального окна на экране:

       var frmUpdateSuccessDiv = $('#frmUpdateSuccess').kendoWindow({
            height: "260px",
            width: "480px",
            title: false,
            modal: true,
            visible: false

        }).data('kendoWindow');

        frmUpdateSuccessDiv.center();
        frmUpdateSuccessDiv.open();

В окне есть кнопка с id="uSuccess"

Как мне закодировать jQuery, чтобы закрыть не только модальное окно, но и родитель?

        $('#uSuccess').click(function () {
            $('#frmUpdateSuccess').closest(".k-window-content").data("kendoWindow").close();
        });

Не получается... и

        $('#uSuccess').click(function () {
            window.parent.close();
        });

кажется, работает только в IE (и выдает большое уродливое предупреждение о том, что «кнопка хочет закрыть окно, бла, бла...)

Идеи?


person CLuelessonTuesdays    schedule 08.05.2014    source источник


Ответы (2)


Закрытие модального окна $('#frmUpdateSuccess').data("kendoWindow").close(); (без closest(".k-window-content"))

Итак, ваш обработчик кнопки должен быть:

    $('#uSuccess').click(function () {
        $('#frmUpdateSuccess').data("kendoWindow").close();
    });

См. здесь: http://jsfiddle.net/OnaBai/BtSUQ/

Но закрыть окно может быть так же просто, как window.close() (не уверен, почему вы пытаетесь использовать parent, если только ваш код не находится внутри IFRAME), но в некоторых браузерах это не будет работать по соображениям безопасности (запретить веб-сайтам играть с вами окна / вкладки) .

person OnaBai    schedule 08.05.2014

Я не совсем уверен, что вы собираетесь делать, учитывая отсутствие контекста в вашем окне успеха, но этот код может привести вас к правильному пути. Это позволяет кнопке в окне закрыть содержащее окно.

$(".close-button").click(function(){
    // call 'close' method on nearest kendoWindow
    $(this).closest("[data-role=window]").kendoWindow("close");
});
person Brandon Barkley    schedule 08.10.2015