日期:2014-05-16  浏览次数:20508 次

想用jq实现标签的展开效果,没有办法做到单个标签单独展开
本帖最后由 natsuyuu 于 2013-02-11 14:51:42 编辑

jquary代码如下:


$(function(){
var $title=$('div.jqdemo');//找到要显示/隐藏的元素
//$title.hide();   //如果你想默认是隐藏状态,可取消此行注释,下面两个切换函数换位
$title.prev().toggle(function(){//为显示/隐藏元素的前一个元素(取出标题元素)设置点击切换事件
$title.hide().prev().find('span').text('+');//第一次点击时,隐藏div元素,并找到标题元素中的span,切换按钮
},function(){
$title.show().prev().find('span').text('-');//第二次点击时,显示div元素,并找到标题元素中的span,切换按钮
});



html部分:

 <p>
        <h2><span>-</span>Profile</h2>
        <div class="jqdemo">
         <p>test1</p>
            <p>test1</p>
            <p>test1</p>
        </div>
        <h2><span>-</span>Education</h2>
        <div class="jqdemo">
         <p>test1</p>
            <p>test1</p>
            <p>test1</p>
        </div>
        <h2><span>-</span>Competence</h2>
        <div class="jqdemo">
         <p>test1</p>
            <p>test1</p>
            <p>test1</p>
        </div>
        <h2><span>-</span>Source Code</h2>
        <div class="jqdemo">
         <p>test1</p>
            <p>test1</p>
            <p>test1</p>
        </div>
</p>


现在问题是,点任何一个标签都对把所有的内容展开
而且有的时候需要点击两次才能展开,不知道哪里逻辑出了问题
如何修改jquary让点击每个标签时,只展开点击的那个标签,收回其他的? 谢谢!

------解决方案--------------------
引用:
本帖最后由 natsuyuu 于 2013-02-11 14:51:42 编辑
jquary代码如下:

Java code?123456789$(function(){    var $title=$('div.jqdemo');//找到要显示/隐藏的元素    //$title.hide();   //如果你想默认是隐藏状态,可取消此行注释,下面两个切换……

获取的title是个数组,遍历title每个元素即可,如下

$(function(){
var $title=$('div.jqdemo');//找到要显示/隐藏的元素
$title.each(   //遍历
function()
{
var $titleDiv = $(this);
$titleDiv.prev().toggle(function(){//为显示/隐藏元素的前一个元素(取出标题元素)设置点击切换事件
$titleDiv.hide().prev().find('span').text('+');//第一次点击时,隐藏div元素,并找到标题元素中的span,切换按钮