按下escape时如何销毁jquery对话框?
有没有办法添加这样的代码: $ .dialog( '破坏');
关闭事件? 这是关闭事件:它认为最后一个'else'有一个隐藏方法,这就是那个人。但不能破坏那里的任何东西:
close: function( event ) {
var that = this,
maxZ, thisZ;
if ( !this._isOpen ) {
return;
}
if ( false === this._trigger( "beforeClose", event ) ) {
return;
}
this._isOpen = false;
if ( this.overlay ) {
this.overlay.destroy();
}
if ( this.options.hide ) {
this._hide( this.uiDialog, this.options.hide, function() {
that._trigger( "close", event );
});
} else {
this.uiDialog.hide();
this._trigger( "close", event );
}
答案 0 :(得分:4)
我能找到的最优雅的方式是收听对话框的关闭事件,并将其销毁。
$('#mydialog').dialog({
buttons: {
OK: function(event) {
$(this).dialog("close");
}
},
close: function(event, ui) {
$(this).dialog("destroy");
},
});
这样,ESCAPE和OK按钮都会关闭对话框,然后事件监听器启动并从DOM中删除对话框。
答案 1 :(得分:3)
$(document).keydown(function(e) {
// ESCAPE key pressed
if (e.which == 27) {
$('#dialog').dialog('destroy');
}
});
答案 2 :(得分:2)
<强> $(本).dialog( '破坏')。除去()强>
此代码将破坏对话框,并从DOM中删除正在进行对话的Div。
例如:
我有一个名为$('#report_dialog')的对话框,我想从DOM中删除该元素
所以我可以使用像
这样的语句 **$('#report_dialog').dialog('destroy').remove();**
在按Esc键的同时从DOM中销毁对话框: ================================================== ==
I just Want to override the **closeOnEscape** event in jquery dialog.
$(document).keydown(function(e) {
// ESCAPE key pressed
if (e.which == 27) {
$('#report_dialog').dialog('destroy').remove();
}
});
我们可以准确地使用密钥代码,否则 $ .ui.keyCode.ESCAPE 它会自动从DOM中删除密钥代码
答案 3 :(得分:1)
找到了一种直接对close事件进行编辑的方法,因为我想在整个应用程序中使用此行为。
自:
else {
this.uiDialog.hide();
this._trigger( "close", event );
}
要:
else {
this.uiDialog.remove();
this._trigger( "close", event );
}
非常感谢!