我在頁面頂部的橫幅上有一個按鈕,用於在屏幕上啓動幾個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的方式。 [鏈接](http://stackoverflow.com/questions/1222853/use-jquery-to-check-if-all-divs-are-hidden) – Gabriel
如果你打開覆蓋,爲什麼你不使用計數器在打開時增加,在關閉時遞減:如果0你處於初始狀態。 –