jQuery UI 대화 상자를 사용하고 있습니다. 열려 있으면 한 가지를하고 싶습니다. 닫혀 있으면 다른 작업을하고 싶습니다.
내 질문은 jQuery UI 대화 상자가 열려 있는지 여부를 어떻게 감지합니까?
jQuery UI 대화 상자를 사용하고 있습니다. 열려 있으면 한 가지를하고 싶습니다. 닫혀 있으면 다른 작업을하고 싶습니다.
내 질문은 jQuery UI 대화 상자가 열려 있는지 여부를 어떻게 감지합니까?
답변:
$("#mydialog").hasClass("ui-dialog-content")
. stackoverflow.com/questions/29528706/…
사실, 당신은 그것을 사실과 명시 적으로 비교해야합니다. 대화 상자가 아직 존재하지 않으면 예상대로 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; }