2013-02-13 16 views
8

Czy jest możliwe posiadanie niestandardowego programu obsługi dla klucza ESC w oknie dialogowym JQuery?Jak złapać ESC w zdarzeniu w oknie dialogowym JQuery?

+0

jeden już tam nazwie closeOnEscape false –

+1

@DipeshParmar że po prostu wyłącza procedurę obsługi domyślne ucieczki, nie robi” t dodaj niestandardową procedurę obsługi. – Alnitak

Odpowiedz

12

Tak, jest to możliwe.

Ustaw opcję falsecloseOnEscape i zarejestrować własną keydown obsługi na elemencie .ui-dialog w oknie dialogowym za dialogcreate obsługi.

$(element).dialog({ 
    create: function() { 
     $(this).closest('.ui-dialog').on('keydown', function(ev) { 
      if (ev.keyCode === $.ui.keyCode.ESCAPE) { 
       ... 
      } 
     }); 
     ... 
    }, 
    closeOnEscape: false, 
    ... 
}); 

Zobacz http://jsfiddle.net/alnitak/EbnZr

1
$(selector-for-dialog).keyup(function(e) { 
    // ESC key 
    if (e.keyCode === 27) { 
     // custom action 
    } 
}); 
7

używam inny sposób:

$(element).dialog({ 

    beforeClose: function(event) { 
     if (event.keyCode === $.ui.keyCode.ESCAPE) { 
      // ... 
      return false; 
     } 
    } 

}); 
+0

To działa dla mnie. – BollMose

Powiązane problemy