Диалоговое окно JQuery закрывается на «x» так же, как и «Отмена» - PullRequest
1 голос
/ 21 февраля 2011
$("#termSheetPrinted").dialog({
            autoOpen: false,
            resizable: true,
            height: 800,
            width: 950,
            position: 'center',
            title: 'Term Sheet',
            modal: true,
            buttons: {
                "Print": function () {
                    $("#termSheetPrinted").jqprint();
                },
                "Cancel": function () {
                    $("#termSheetPrinted").html('');
                    $(this).dialog("close");
                }
            }
        });

Это диалоговое окно появляется с 'x' в верхней части окна, чтобы закрыть его.Я хочу, чтобы $(this).dialog("close"); запускался при нажатии на эту кнопку «x» так же, как кнопка «Отмена».

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2011

Я не знаю, как конкретно изменить то, что происходит при нажатии кнопки "x", но вы можете создать обработчики событий " close " или " beforeClose ", чтобы убедитесь, что то, что вам нужно, когда диалоговое окно закрыто, происходит.

0 голосов
/ 01 декабря 2014

Немного более подробного объяснения принятого ответа (для всех нас, кому нужна дополнительная помощь ;-)):

говорят, что вы хотите установить фокус в поле, идентифицированном его идентификатором, когда пользователь нажимает клавишу[x]:

...
$("#myDivId").dialog({
    resizable: true,
    modal: true,
    dialogClass: "cssClass",
    close: function() {
            $("#focusFieldId").focus();              
    }   
  });
... 

см .: https://jquery -ui.googlecode.com / svn / tags / 1.8.24 / docs / dialog.html # event-close

0 голосов
/ 21 февраля 2011

Я бы создал отдельную функцию, которая вызывается при нажатии кнопки «Отмена» и событии beforeClose. (См. Ссылки JacobM выше на события close и beforeClose.)

Вот супер-простой jsFiddle Я собрал, чтобы показать, как это сделать, и влияние, если вы вызываете функцию с помощью нажатия кнопки отмены и события beforeClose (и порядка, в котором они запускаются) , В идеале, вы просто должны иметь $(this).dialog("close"); в функции кнопки Отмена и переместить $("#termSheetPrinted").html('') к своей извлеченной функции.

...