我想使用instance方法来测试jQuery UI Dialog小部件是否已经初始化.关于API,这是可能的,但它对我不起作用:
Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'instance'
更新:
这是文档中的一个错误,instance方法将从版本1.11.0获得,请参阅此问题.
jba*_*bey 90
最新版本的jQuery UI不再允许您对尚未初始化的项目调用UI方法.我刚刚将它们包装在if语句中,例如:
if ($("#divToBeDialoged").hasClass('ui-dialog-content')) {
// do whatever
} else {
// it is not initialized yet
}
Run Code Online (Sandbox Code Playgroud)
编辑:更改了班级名称,谢谢@dmnc
Dar*_*ndy 18
一旦你完成使用它们,清空和销毁对话框也是一个好习惯.我通常在每个对话框的close事件中使用此代码
$("#myDialog").dialog({
// other options
close: function(event, ui) {
$(this).empty().dialog('destroy');
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的建议,而不是每次都询问实例中是否存在对话框,确保每个对话框都自行清理.
您可以使用:
if($('#id').is(':ui-dialog')) {
}
Run Code Online (Sandbox Code Playgroud)
要么
if($('#id').is(':ui-dialog')) {
}
Run Code Online (Sandbox Code Playgroud)
var obj = $('<div>test</div>').dialog();
if (obj.is(':ui-dialog')) {
alert('I\'m a dialog')
}Run Code Online (Sandbox Code Playgroud)