2013-06-22 49 views
0

每个<li></li>都有一个切换和一个内容类。 现在,当我点击切换时,每个内容项目都显示出来。 使用jQuery,我怎样才能确保一次只显示一个内容?用于切换特定div的jQuery切换功能(而不是所有具有相同类名称的div)

<script> 
$(document).ready(function(){ 
var $content = $(".content").hide(); 
$(".toggle").on("click", function(e){ 
$(this).toggleClass("expanded"); 
$content.slideToggle(); 
}); 
}); 
</script> 

    <li class="cell" id="bar1"> 
    <div id="update1"><?php echo $post?></div> 
    <div class="toggle" id="toggle1"></div> 
    <div id="check"><a href="#" class="check" id="check1">read</a></div> 
    <div class="upvote"><a href="#" class="like" id="1"><span class="thumbsup"></span> 
    </a></div>  
    <div class="upvote"><a href="#" class="like" id="upvote1"> 
    <div id="deletepost"><a href="#" id="1">delete</a></div> 
    <div class="content" id="1"><img src="images/balloon.jpg" 
    </div> 
    </li> 

编辑:.content不是下一个.toggle的兄弟。为了清晰起见,我删除了一些介于.toggle和.content之间的div。

感谢

回答

2

变化$content.slideToggle()$(this).next().slideToggle()假设.content总是.toggle

编辑的下一个兄弟:因为它不是,你可以做的是使用postid秒。我认为最好使用data-postid属性,而不是将它添加到id(或者两者兼有),这样您就不必从ID中解析它。

$(".content[data-postid=" + $(this).data('postid') + "]").slideToggle(); 
+0

谢谢。不幸的是。内容不是.toggle的下一个兄弟。这是棘手的部分(我刚刚编辑我的问题)。 .content和.toggle分开5格。 –

+0

@CharlieHarris我需要看到实际的HTML来帮助在这种情况下 –

+0

刚刚发布它。 –