2013-02-13 4 views
8

È possibile avere un gestore personalizzato per il tasto ESC sulla finestra di dialogo JQuery?Come catturare ESC in evento in JQuery Dialog?

+0

uno è già lì chiama closeOnEscape: true –

+1

@DipeshParmar che trasforma appena fuori il gestore di fuga di default, esso doesn' t aggiungere un gestore personalizzato. – Alnitak

risposta

12

Sì, è possibile.

Impostare l'opzione closeOnEscape-false e registrare il proprio gestore keydown sull'elemento .ui-dialog all'interno dialogcreate gestore della finestra di dialogo.

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

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

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

io uso un altro modo:

$(element).dialog({ 

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

}); 
+0

Funziona per me. – BollMose