2010-03-10 25 views
0
$(function() { 
    $("table.section thead").click(function() { 
     if ($(this).next("table.section tbody").style.display == "block"){ 
     $(this).next("table.section tbody").slideUp("slow"); 
     } 
     if ($(this).next("table.section tbody").style.display == "none"){ 
     $(this).next("table.section tbody").slideDown("slow"); 
     } 
    }); 
}); 

我不知道如何实现这一点,任何帮助将非常感激。这个Jquery函数有什么问题,帮助

更新:

我正在尝试使用以下函数。

$(function() { 
    $("table.section thead").click(function() { 
    $(this).next("table.section tbody").slideToggle("slow"); 

    }); 
}); 

它给了我一个问题,(THEAD当它崩溃,你点击它,它扩大,然后再次崩溃,所以这将永远是崩溃)。这就是为什么我试图让顶部的功能。

+0

你想达到什么样的? – 2010-03-10 11:17:35

+0

我想单击事件到所有“table.section thead”,所以当它的点击隐藏了表格的tbody。 – Amra 2010-03-10 11:21:16

回答

5

在这种情况下使用可见选择:

$(function() { 
    $("table.section thead").click(function() { 
     var body = $(this).next("table.section tbody"); 
     if (body.is(":visible")) 
     body.slideUp("slow"); 
     else 
     body.slideDown("slow"); 
    }); 
}); 

但可能要简单得多只是使用.slideToggle()这样的:

$(function() { 
    $("table.section thead").click(function() { 
     $(this).next("table.section tbody").slideToggle("slow"); 
    }); 
}); 
+0

同意'slideToggle()',这使事情**很多**更简单。 – Ben 2010-03-10 11:25:36

+0

@Nick:谢谢,那就是我正在寻找的东西,但是我用简单的函数得到的问题仍然发生,当tbody不可见时它会用相同的点击展开和折叠,并且我尝试使用return false ,你知道这可能是为什么吗?谢谢。 – Amra 2010-03-10 11:38:00

+0

我在if语句中添加了一个警告,而在else语句中添加了另一个警报,并且它总是到达if,所以它始终滑动。 – Amra 2010-03-10 11:40:14