2014-03-07 69 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