2013-07-24 17 views
-2

我想隱藏父DIV,如果孩子的div是隱藏的,添加一個類體 但是,當孩子看到並指出發生jQuery的 - 檢查,如果孩子是可見

if(jQuery('#toolbar > div').is(':visible')){ 
    jQuery('#toolbar').slideToggle('fast'); 
    jQuery('body').toggleClass('body-margin'); 
} 

什麼是錯在我的代碼?

<div id="toolbar"> 
    <div class="buttons" ></div> 
</div> 
+4

你是什麼意思「不工作」?告訴我們你的調試到目前爲止揭示了什麼。 –

+0

那麼......你錯過了實際的if語句,但我猜你錯誤輸入了? – Spokey

+1

爲什麼jQuery使用$而不是容易閱讀 – Sankara

回答

1

您需要

if(!jQuery('#toolbar').children('div:visible').length){ 
    jQuery('#toolbar').slideToggle('fast'); 
    jQuery('body').toggleClass('body-margin'); 
} 

這將檢查是否#toolbar有它內部的沒有可見div的。

1

試試這個

if(jQuery('#toolbar > div').is(':hidden')){ 
    jQuery('#toolbar').slideToggle('fast'); 
    jQuery('body').toggleClass('body-margin'); 
} 
+1

tinymce沒有提到的問題,任何地方後,兒童的div被添加到DOM? – Archer

+0

@Archer我編輯了這個問題 – user007

1

你的代碼是倒退,如果我理解正確。你可以檢查,以便查看是否有任何按鈕格是可見的,如果不隱藏使用動畫,並通過切換與addClass()添加類或直接在這裏,我檢查所有子格與類「按鈕」:

if (!jQuery('#toolbar').find('div.buttons').filter(function() { 
    return $(this).is(':visible'); 
}).length) { 
    jQuery('#toolbar').slideToggle('fast'); 
    jQuery('body').toggleClass('body-margin'); 
} 
+1

如果添加了這些按鈕,您需要將它放入一些可以添加事件的函數中。 –