我正在使用一个对话框,并使用在文档中找到的代码对其进行检查
var isOpen = $( "#dialogName" ).dialog( "isOpen" );
$("#here").on("click", function(e){
if(isOpen){
$("#dialogName").dialog("close");
}
});
有时我得到错误:
有时它找不到isOpen。我想做的是:
在单击
#here
时,它必须检查对话框是否仍然存在,然后close
否则不执行任何操作。 最佳答案
isOpen
是在现有对话框上调用的方法,而该对话框尚未初始化。
您应该首先初始化对话框,然后在click
事件处理程序内部检查对话框当前是否为isOpen
。
// initialize the dialog:
var myDialog = $( "#dialogName" ).dialog({
// dialog settings:
autoOpen : false,
// ...
});
$("#here").on("click", function(e){
// on click, check if is opened:
var isOpen = myDialog.dialog("isOpen");
if(isOpen){
myDialog.dialog("close");
}
});
DEMO