sourcecode

jQuery UI 대화상자가 열려 있는지 탐지

copyscript 2023. 9. 6. 22:13
반응형

jQuery UI 대화상자가 열려 있는지 탐지

저는 jQuery UI 대화상자를 사용하고 있습니다.만약 그곳이 열린다면, 나는 한 가지를 하고 싶습니다.만약 문을 닫는다면, 나는 다른 일을 하고 싶습니다.

제 질문은 jQuery UI 대화 상자가 열려 있는지 여부를 어떻게 감지합니까?

문서를 읽어보면.

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

이 메서드는 jQuery 개체가 아닌 부울(true 또는 false)을 반환합니다.

사실 그것을 사실과 분명히 비교해야 합니다.대화 상자가 아직 존재하지 않으면 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
}

Nick Craver의 코멘트는 대화상자가 아직 정의되지 않은 경우 발생하는 오류를 피하기 위한 가장 간단한 것입니다.

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

먼저 CSS에 가시성을 설정해야 합니다. 간단히 다음을 사용합니다.

#elem { display: none; }

jQuery 대화상자에는isOpenjQuery 대화 상자가 열려 있는지 여부를 확인하는 데 사용할 수 있는 property입니다.

다음 링크에서 예를 볼 수 있습니다: http://www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html

언급URL : https://stackoverflow.com/questions/3313784/detect-if-a-jquery-ui-dialog-box-is-open

반응형