Jquery SlideToggle div在单独的表行中

时间:2013-02-12 18:39:35

标签: jquery html-table row slidetoggle

我正在尝试让一个slidetoggle工作,以便在上一行中单击链接时显示隐藏的表格行。我首先遇到滑动不平滑的问题,然后发现滑动切换对表行没有好处。所以我把内容放在行中div的隐藏行中,然后决定隐藏它。我现在的问题是,我似乎无法找出jquery的正确代码,以便在行中找到该div。

我在这里有一个JSfiddle示例:http://jsfiddle.net/yrM3H/811/

我的代码示例如下:

HTML:

<table>
    <tr>
        <td>
            <div class="hidden">Expanded!</div>
        </td>
    </tr>
    <tr>
        <td><div class="toggle">Content</div></td>
    </tr>
    <tr>
        <td>
            <div class="hidden">Expanded!</div>
        </td>
    </tr>
</table>

JS:

jQuery(document).ready(function () {
    jQuery(".toggle").parent().parent().next().children().next(".hidden").hide();
    jQuery(".toggle").click(function () {
        $('.active').not(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle(300);
        $(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle("fast");
    });
});

2 个答案:

答案 0 :(得分:3)

$("td").click(function(){
         $(this).parent("tr").next("tr").find("td div.hidden").slideToggle();
    });

http://jsfiddle.net/kmd97/yrM3H/816/

答案 1 :(得分:2)

这可以解决您的问题:http://jsfiddle.net/yrM3H/813/

我更改了它,因此它在第二行使用.find('hidden')来查找子元素。事先没有找到元素。

旁注 - 我不明白你为什么不用$('.hidden').hide();隐藏所有.hidden元素?