2010-08-13 131 views
1

好的,所以这适用于一次切换一个帖子开启和关闭。脚本仍然无法看到当用户点击一个新的帖子时,必须将OTHER帖子设置为display =“none”。因此,如果我在第一个帖子之后点击第二个帖子标题,则需要隐藏与第一个帖子相关联的内容,然后显示第二个帖子的文本。并继续通过多个职位的标题。你认为最好的方法是什么?以下是打开和关闭一个主题的代码(单击一次显示,再次单击以隐藏)。但是,点击一个主题,然后再一起增加内容,这不是我想要的......我知道我已经像一年前那样做过,我只是不记得我是如何做到的。jQuery和切换内容div


<script type="text/javascript"> 
function togglePost(obj) { 
      var obj=document.getElementById(obj); 
      if (obj.style.display == "block") obj.style.display = "none"; 
      else if (obj.style.display = "none") obj.style.display = "block"; 
    else obj.style.display = "none"; 
} 
</script> 

<div id="container"> 
    <div id="sidebar"> 
    <h3>Posts</h3> 
    <p><span onClick="togglePost('q1')">October</span></p> 
    <p><span onClick="togglePost('q2')">November</span></p> 
    <p><span onClick="togglePost('q3')">December</span></p> 
    </div> 

    <div id="center"> 
    <h1> Main Page of post content</h1> 
    <p><div id="q1" style="display:none;">October is...testtext testtext testtext</div></p> 
<p><div id="q2" style="display:none;">November is...testtext testtext testtext</div></p> 
<p><div id="q3" style="display:none;">December is...testtext testtext testtext</div></p> 
</div> 
<br class="clearfloat" /> 
</div> 

回答

1

在你的功能,只需将它们都显示为无,然后告诉你想要的。

function togglePost(obj) { 
      var obj=document.getElementById(obj); 
      var was_hidden = obj.style.display == "none"; 
      $('[id^=q]').hide(); 
      if (was_hidden) $(obj).show(); 
} 
+0

约书亚 - 就是这样。可以这么说,我的舌头尖端,但我有点生疏。谢谢 :) – Lynn 2010-08-13 05:16:11

0

你可以让你的跨度是这样的:

<p><span class="q1">October</span></p> 
<p><span class="q2">November</span></p> 
<p><span class="q3">December</span></p> 

并更换的Javascript这样的:

$(document).ready(function() { 

    // unobtrusively attach onclick handlers to all span elements in the sidebar 
    // the className of each span corresponds to the ID of the div which it toggles 
    $("#sidebar span").click(function() { 
     $('#' + $(this).attr("class")).toggle(); 
    }); 
}); 

演示:http://jsfiddle.net/9Nqgs/

0

既然你说的jQuery的问题,我居兴这可

function togglePost(id) { 
    $('#center div').hide(); 
    $('#' + id).show(); 
}