mootools的这种变化使我发疯。

的HTML

<tr class="teamicon">
    <td style="text-align: center;" width="100%" valign="middle">
    //Blahblah
    </td>
  </tr>
  <tr class="teamval">
    <td valign="middle" width="100%">
    //Blahblah
    </td>
  </tr>


我想要实现的目标。当单击类“ teamicon”时,我想显示/隐藏带动画的teamval类的tr。但是,我无法使其动画正常。看起来“ teamval”内部必须先设置动画(否则我错了吗?)。

我的尝试:

jQuery(document).ready(function(){
$('.teamval').slideUp(400);
$('.teamicon').click(function(){
    if ($(this).next('tr').is(":hidden"))
    {
        $(this).next('tr.teamval').$('td').slideDown(400, function(){
            $(this).next('tr.teamval').slideDown(400);
        });
    }
    else
    {
        $(this).next('tr.teamval').$('td').slideUp(400, function(){
            $(this).next('tr.teamval').slideUp(400);
        });
    }
});
});


OFC。这是错误的("$(this).next('tr.teamval').$('td')"在萤火虫中返回错误)。我该如何实现?

我不能交换到div。

最佳答案

您可以执行以下一项操作:

$(this).next('tr.teamval').slideDown(...) // whole tr

$(this).next('tr.teamval').find('td').slideDown(...) // td descendant


该错误是因为您尝试访问jQuery元素集上的$属性,该属性不存在。相反,我们可以使用find,它搜索当前集中元素的匹配后代。

编辑:

好吧,我想你想要:

if ($(this).next('tr').is(":hidden"))
{
    var nextTeamval = $(this).next('tr.teamval');
    nextTeamval.find('td').slideDown(400, function(){
        nextTeamval.slideDown(400);
    });
}


唯一潜在的问题是,teamval是否在td(嵌套表)中包含td。您可以尝试此jsFiddle演示。

09-16 23:53