내 페이지 상단의 배너에 여러 개의 yui2
오버레이가 표시됩니다. 각 오버레이에는 닫기 버튼이 있습니다 (가시성을 숨김으로 변경하여 재사용 할 수 있음). 오버레이가 실행 된 후, 클릭하면 배너에 모든 오버레이를 닫을 수있는 버튼이 나타납니다.모든 오버레이가 닫힌 경우 함수를 실행하십시오.
이렇게하면 개별적으로 모두 닫거나 닫을 수있는 옵션이 제공됩니다. 이것은 내가 붙어있는 것입니다 :
사용자가 개별 오버레이를 닫으면 오버레이를 닫은 후에 다른 오버레이가 아직 열려 있는지 확인하고 싶습니다. 그들이 개별적으로 모든 것을 닫은 경우 상단의 배너를 되돌리고 "모두 닫기 버튼"을 제거해야합니다.
내가하고 모든 오버레이를 검색 할 수 있습니다 :
var elements = YAHOO.util.Dom.getElementsByClassName('test');
나는 그들 모두가 설정되어 볼 오버레이를 닫고 그 배열을 통해 각각의 시간을 이동해야 할 것 논리를 생각하지 못할
숨겨진 경우 공개 여부. 그렇다면, 함수를 실행하십시오. 그래도 페이지에 오버레이가 표시되면 아무 것도하지 않습니다.
이것은 내가 생각해 낸 대답입니다. 올바른지 확실하지 않습니다.
var elements = document.getElementsByClassName('test');
var visiblecounter = 0;
for (var i = 0; i < elements.length; i++) {
if(elements[i].style.visibility!='hidden'){
alert("not hidden");
visiblecounter ++;
}
}
if(visiblecounter > 0){
alert("all overlays are closed individually. you can remove close all button");
}
이걸 찾았습니다. 내가 필요로하는 것에 가깝습니다. 그냥 비 jquery 방식으로. [link] (http://stackoverflow.com/questions/1222853/use-jquery-to-check-if-all-divs-are-hidden) – Gabriel
오버레이를 여는 이유는 무엇입니까? 열 때 증가하고 닫을 때 감소하는 카운터 : 0이면 초기 상태입니다.덕분에 –