Inn*_*nna 3 javascript jquery jquery-ui jquery-ui-dialog
我正在使用对话框并使用我在文档中找到的代码进行检查
var isOpen = $( "#dialogName" ).dialog( "isOpen" );
$("#here").on("click", function(e){
if(isOpen){
$("#dialogName").dialog("close");
}
});
Run Code Online (Sandbox Code Playgroud)
有时我得到错误:
未捕获错误:在初始化之前无法调用对话框上的方法; 试图调用方法'关闭'
有时它找不到isOpen.我想做的是:
单击#here它必须检查对话框是否处于活动状态,close否则不执行任何操作.
好像您还需要检查是否#dialogName已对话.一种可能的检查方法是查看分配给dialog元素的类名:
$("#dialog").hasClass("ui-dialog-content") && $("#dialog").dialog("isOpen")
Run Code Online (Sandbox Code Playgroud)
演示
$(function() {
$("#init").one("click", function() {
$("#dialog").dialog();
$(this).val("Click to open dialog").on("click", function() {
$("#dialog").dialog("open");
});
});
$("#here").on("click", function(e) {
if ($("#dialog").hasClass("ui-dialog-content") && $("#dialog").dialog("isOpen")) {
$("#dialog").dialog("close");
} else {
alert("Dialog not initialized or dialog not open");
}
});
});Run Code Online (Sandbox Code Playgroud)
@import url("//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/redmond/jquery-ui.min.css");Run Code Online (Sandbox Code Playgroud)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<div id="dialog" title="Dialog title" style="display: none;">Dialog content</div>
<input type="button" id="init" value="Click to create dialog">
<input type="button" id="here" value="Click to close dialog">Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6120 次 |
| 最近记录: |