jQuery UIダイアログを使用しています。それが開いているなら、私は一つのことをしたいです。閉まっているなら、またやりたいです。
私の質問は、jQuery UIダイアログボックスが開いているかどうかをどのように検出するのですか?
jQuery UIダイアログを使用しています。それが開いているなら、私は一つのことをしたいです。閉まっているなら、またやりたいです。
私の質問は、jQuery UIダイアログボックスが開いているかどうかをどのように検出するのですか?
回答:
$("#mydialog").hasClass("ui-dialog-content")
。stackoverflow.com/questions/29528706/…を
実際には、明示的に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
}
$dialog.hasClass('ui-dialog-content')
jQueryダイアログには、isOpen
jQueryダイアログが開いているかどうかを確認するために使用できるプロパティがあります。
このリンクで例を見ることができます:http : //www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html
Nick Craverのコメントは、ダイアログがまだ定義されていない場合に発生するエラーを回避する最も簡単なものです。
if ($('#elem').is(':visible')) {
// do something
}
ただし、最初にCSSで可視性を設定する必要があります。
#elem { display: none; }