2013-03-05 82 views
0
$(".exercise-name").click (e) -> 
    e.preventDefault() 
    $(this).parent().siblings(".exercise-details").slideToggle('fast') 

基本上在下面的結構在jQuery中有更好的方法嗎?

.exercise 
    .exercise-header 
    .exercise-name 
    .exercise-details 

反正是有去運動細節,而不必通過父遍歷起來,那麼它的兄弟姐妹。排序的捷徑?

+0

這似乎夠好。如果你知道它是直接的下一個兄弟,你可以使用'next' =>'$(this).parent()。next()。slideToggle('fast')' – elclanrs 2013-03-05 05:28:36

回答

1

可能是這樣的:

$(".exercise-header, .exercise-name").click(function(e){ 
    e.preventDefault() 
    $(this).siblings(".exercise-details").slideToggle('fast'); 
}); 

或本:

$(".exercise-name").click(function(e){ 
    e.preventDefault() 
    $('.exercise').find(".exercise-details").slideToggle('fast'); 
}); 
+0

在你的第一個例子中,如何工作.exercise名稱,不會只在.exercise-header上有效嗎? – 2013-03-05 09:09:33

1

可以使用next() ..

$(this).parent().next().slideToggle('fast'); 

如果未來直接父兄弟姐妹......不過,我認爲唯一的辦法就是先到父母身邊。

相關問題