2014-03-07 101 views
-2

我想孩子顯示/隱藏當點擊父顯示/隱藏兒童單擊

HTML

<div id="a" class="childshow">Parent 
     <div id="b" class="childshow" style="display:none">Child 
      <div id="c" class="childshow" style="display:none">inner child 
      </div> 
      <div id="c1" class="childshow" style="display:none">inner child1 
      </div>  
    </div> 
</div> 

JQUERY

$(".childshow").click(function() { 
    if(jQuery(this).find('>.childshow').css("display")=="none"){ 
     $(this).find('>.childshow').show(); 
    }else{ 
     $(this).find('>.childshow').hide(); 
    } 
}); 

,但這不能正常工作

+1

將相關的HTML代碼發送到 – bipen

+1

包括你的html。還有,爲什麼當你用'$'選擇其他的時候,你會隨機使用'jQuery'? – Albzi

+0

HTML在哪裏? –

回答

5

你可以使用toggle(),而不是從冒泡停止活動,順便說一句,你應該使用.children()

DEMO jsFiddle

$(".childshow").click(function (e) { 
    e.stopPropagation(); 
    jQuery(this).children('.childshow').toggle(); 
}); 
+0

+1使用'toggle()'.... :) ..我發佈了'show()','hide()'..沒有想到'toggle()'然後。 – bipen

3

在這裏你去

$(".childshow").click(function (e) { 
    e.stopPropagation(); //to stop event bubbling 
    if ($(this).children('.childshow').is(':visible')) { //check if hidden or not 
     $(this).children('.childshow').hide(); //if yes hide 

    } else { 

     $(this).children('.childshow').show(); // else show 
    } 
}); 

或使用toggle()代替showhide

$(".childshow").click(function (e) { 
    e.stopPropagation(); 
    $(this).children('.childshow').toggle(); 
}); 

fiddle here