Вот всплывающее окно ui-dialog, которое я создал. Цель состоит в том, когда всплывающее окно видимо, кнопка, которая запускает его, скрыта. Когда всплывающее окно скрыто, триггер доступен и доступен для просмотра.
Я ищу следующее условие:
Ключ выхода закрывает форму и отображает кнопку запуска
//foo_trigger is a button that opens the popup form, foo_popup
$("#foo_trigger").hide();
//Opens the popup form
$("#foo_popup").dialog({
resizable: false,
height:275,
width:500,
modal: true,
buttons: {
//foo button submits the form
"foo": function () {
},
//Closes the form and unhides foo_trigger button
"Close": function () {
$(this).dialog("close");
$("#foo_trigger").show();
}
}
});
Я бы предпочел, чтобы ответ был вызван только этим всплывающим окном, и он не должен глобально воздействовать на клавишу эвакуации и всегда вводить ключ
Вы должны уметь связывать и отвязывать обработчик события keyup, когда диалог открывается и закрывается:
function keyupHanlder(e){
if (e.keyCode == 27) {
$("#foo_trigger").show();
}
}
$("#foo_popup").dialog({
...
open: function(e, ui){
$(document).bind('keyup', keyupHandler);
},
close: function(e, ui){
$(document).unbind('keyup', keyupHandler);
$("#foo_trigger").hide();
}
});
Что-то вроде этого?
$(document).keyup(function(e) {
if (e.keyCode == 27) {// esc
$("#triggerbutton").show();
}
});
if($("#foo_popup").dialog("isOpen")){ $("#foo_trigger").hide(); } else {$("#foo_trigger").show();}