0

我想slideToggle仅适用于最接近触发图像的类。我不希望有多个 ID 来运行多个版本的slideToggle.

我尝试使用.closest但无济于事

演示http://jsfiddle.net/LstNS/12/

4

5 回答 5

2

应该这样做:

$('.image').click(function(){
    $(this).parents('section').find('.content').slideToggle();
});

http://jsfiddle.net/LstNS/13/

于 2013-10-21T17:23:15.987 回答
2
$('.image').click(function(){
    $(this).parent().next().slideToggle();
});

演示

.content不是下一项的情况下的其他选项

$('.image').click(function(){
   $(this).closest('section').find('.content').slideToggle();
});

演示

于 2013-10-21T17:23:56.970 回答
0

这是你想要的?

$('.image').click(function(){
    $(this).parent().siblings('.content').slideToggle();
});

我使用.parent()函数来达到与内容相同的“级别”,在这种情况下选择了 h3。接下来,我将搜索具有类内容的最接近的兄弟姐妹。当它找到正确的类时,它不会进一步搜索。

jsFiddle

于 2013-10-21T17:27:19.230 回答
0

尝试:

$('.image').click(function(){
    $(this).parent().next('.content').slideToggle();
});

jsFiddle 示例

.closest()单独是行不通的,因为那只会在 DOM 中查找。您需要上一级<h3>元素,然后选择下一个元素,<div class="content">。您也可以在我的示例中替换.closest('h3')为。.parent()此外,在您的情况下,.next('.content')将等同于.next().

于 2013-10-21T17:23:00.753 回答
0

.closest不是您的图像的父级。尝试使用这个:

$(this).closest('section').find('.content').slideToggle();

http://jsfiddle.net/LstNS/16/

于 2013-10-21T17:23:15.377 回答