Как сделать так, чтобы моя кнопка триггера показывалась, когда я нажимал клавишу выхода в диалоговом окне?

0

Вот всплывающее окно ui-dialog, которое я создал. Цель состоит в том, когда всплывающее окно видимо, кнопка, которая запускает его, скрыта. Когда всплывающее окно скрыто, триггер доступен и доступен для просмотра.

Я ищу следующее условие:

  1. Ключ выхода закрывает форму и отображает кнопку запуска

    //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();
            }
        }
    });
    

Я бы предпочел, чтобы ответ был вызван только этим всплывающим окном, и он не должен глобально воздействовать на клавишу эвакуации и всегда вводить ключ

  • 1
    Что-то вроде того? if($("#foo_popup").dialog("isOpen")){ $("#foo_trigger").hide(); } else {$("#foo_trigger").show();}
Теги:
dialog

2 ответа

1
Лучший ответ

Вы должны уметь связывать и отвязывать обработчик события 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();
   }
});
  • 0
    Это лучший ответ, потому что он не влияет на ключ все время. Я до сих пор не уверен, что это лучший метод, но пока он работает. Спасибо!
0

Что-то вроде этого?

 $(document).keyup(function(e) {
      if (e.keyCode == 27) {// esc
          $("#triggerbutton").show();
      }   
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню