我有一个jquery对话框,我需要在按Esc时执行some_code(),或者单击取消按钮。使用取消按钮,可轻松为取消按钮添加功能。
$( '#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" );
}
}
});
但是如何在按ESC后执行some_code()?不能单击“确定”按钮调用此函数,因此我不能简单地将其置于关闭事件中。
答案 0 :(得分:10)
在谷歌搜索后没有找到答案(这就是为什么我问Q& A风格的问题)我开始研究close: function( event, ui )
部分并使用event.originalEvent
找到解决方案
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' )
}
希望这有助于某人,这里是小提琴:http://jsfiddle.net/hbrunar/MXk3a/2/