2013-03-05 48 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'); 

如果未来直接父兄弟姐妹......不过,我认为唯一的办法就是先到父母身边。

相关问题