2010-03-10 44 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