2013-02-13 5 views
8

Ist es möglich, einen benutzerdefinierten Handler für ESC-Schlüssel im JQuery-Dialog zu haben?Wie ESC in Ereignis in JQuery Dialog abfangen?

+0

man schon dort closeOnEscape genannt: false –

+1

@DipeshParmar, die erlischt nur die Standard-Escape-Handler, es doesn‘ t Fügen Sie einen benutzerdefinierten Handler hinzu. – Alnitak

Antwort

12

Ja, das ist möglich.

Stellen Sie die closeOnEscape Option false und Ihre eigenen keydown Handler auf dem .ui-dialog Element Register innerhalb des dialogcreate Handler Dialog.

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

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

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

ich eine andere Art und Weise:

$(element).dialog({ 

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

}); 
+0

Es funktioniert für mich. – BollMose