I have a jQuery dialog and I need to execute some_code()
when I press Esc or click the Cancel button. The latter is easy to implement, I just add define a property of the buttons
object:
$('#mydialog').dialog({
closeOnEscape: true,
close: function(event, ui) {
//some_code();
$(this).dialog('destroy')
},
buttons: {
"OK": function() {
$(this).dialog("close");
},
"Cancel": function() {
some_code();
$(this).dialog("close");
}
}
});
But how can I execute some_code()
after pressing Esc? This function must not be called clicking the OK button, so I cannot simply place it in the close
event.
After googling around without finding an answer, I started looking into close: function(event, ui)
part and found the solution using event.originalEvent
(JSFiddle):
close: function(event, ui) {
// some_code();
if (event.originalEvent) {
// triggered by clicking on dialog box X or pressing ESC
// not triggered if a dialog button was clicked
some_code();
}
$(this).dialog('destroy')
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With