2013-01-24 123 views
2

我需要有许多具有SAME类的元素,并且它们内部的内容在点击时显示,但现在因为它们都具有相同的类,所有这些类都打开立刻。只有一个实例,当多个实例具有相同类别时,只能向下滑动一个实例

我该怎么做才能让只有点击的人打开而不打开其他人?

我的HTML:

<div class="product"> 
    <p><a href="#">click</a></p> 

    <div class="product_inner"> 
    <p>show me</p> 
    </div> 

</div> 
    <div class="product"> 
    <p><a href="#">click</a></p> 

    <div class="product_inner"> 
    <p>show me</p> 
    </div> 

</div> 
    <div class="product"> 
    <p><a href="#">click</a></p> 

    <div class="product_inner"> 
    <p>show me</p> 
    </div> 

</div> 

JQuery的:

$(document).ready(function() { 
$('.product p a').click(function() { 
$('.product_inner').slideToggle(300); 
}); // end click 

}); // end ready 

回答

2

当你做一个选择,你会发现你的文档中的所有元素,你想要的是找到你真正想要的工作元素搭配:

$(document).ready(function() { 
    $('.product p a').click(function() { 
     $(this) // the current a-element that was clicked 
      .parent() // p 
       .next() // find the next element from <p> (.product_inner) 
        .stop() // stop animation 
        .slideToggle(300); // Slide toggle 
    }); // end click 

}); // end ready 

或另一种方法:

$(document).ready(function() { 
    $('.product p a').click(function() { 
     $(this) // the current a-element that was clicked 
      .closest('.product') // .product 
       .find('.product_inner') // find .product_inner inside .product 
        .stop() // stop animation 
        .slideToggle(300); // Slide toggle 
    }); // end click 

}); // end ready 

如果你有另一个html标记。

+0

就是这样。谢谢!我会尽快接受这个答案(7分钟) –

+0

@OliveraKovacevic我建议你改用我的。即使稍后更改HTML,它也可以工作。 –

+1

更新:此答案已涵盖我的解决方案。我仍然建议方法2。 –

1

试试这个

JS代码

$(document).ready(function() { 
    $('.product p a').click(function() { 
     $(this).parent('p').siblings('.product_inner').slideToggle(300); 
    }); // end click 

}); 

LIVE DEMO

+0

@Olivera Kovacevic请检查演示。似乎它会有效.. – Codegiant

+0

我更喜欢其他答案提供的最接近发现的方法。永远不要对我说“父母”。 –

相关问题