检测一个jQuery UI对话框是否打开

我正在使用jQuery UI对话框。 如果是开放的,我想做一件事。 如果closures了,我想再做一次。

我的问题是,如何检测一个jQuery UI对话框是否打开?

如果你阅读文档。

$('#mydialog').dialog('isOpen') 

你需要明确地把它和true做比较,以避免对话框作为对象被返回。

其实,你必须明确地把它与真实的比较。 如果对话框不存在,它不会返回false(如你所期望的),它将返回一个DOM对象。

 if ($('#mydialog').dialog('isOpen') === true) { // true } else { // false } 

如果你想检查对话框是否在特定的元素上打开,你可以这样做:

 if ($('#elem').closest('.ui-dialog').is(':visible')) { // do something } 

或者如果你只是想检查元素本身是否可见,你可以这样做:

 if ($('#elem').is(':visible')) { // do something } 

要么…

 if ($('#elem:visible').length) { // do something } 

jQuery对话框有一个isOpen属性,可以用来检查jQuery对话框是否打开。

你可以看到这个链接的例子: http : //www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html