jQuery UI 대화 상자를 사용하고 있습니다. 열려 있으면 한 가지를하고 싶습니다. 닫혀 있으면 다른 작업을하고 싶습니다.
내 질문은 jQuery UI 대화 상자가 열려 있는지 여부를 어떻게 감지합니까?
답변
답변
사실, 당신은 그것을 사실과 명시 적으로 비교해야합니다. 대화 상자가 아직 존재하지 않으면 예상대로 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
답변
Nick Craver의 설명은 대화 상자가 아직 정의되지 않은 경우 발생하는 오류를 방지하는 가장 간단한 방법입니다.
if ($('#elem').is(':visible')) {
// do something
}
하지만 먼저 다음을 사용하여 CSS에서 가시성을 설정해야합니다.
#elem { display: none; }