我正在制作一个包含很多文章的手风琴。
当我使用以下内容时,我有jQuery工作,只有它会在页面上的每篇文章上滑动/关闭:
$('article a').click(function() {
$('article').find('h3').slideToggle('fast');
});
理论上这应该有用,但它没有做任何事情:
$('article a').click(function() {
$(this).find('h3').slideToggle('fast');
});
您可以在此处查看演示:http://jsfiddle.net/CfqGG/
我哪里错了?
答案 0 :(得分:16)
理论上应不有效,因为在您的点击事件中,this
指的是<a>
,而不是<article>
,因为您的点击事件受到约束到<a>
。
试试这个:
$('article a').click(function() {
$(this).parent().find('h3').slideToggle('fast');
});
答案 1 :(得分:7)
$(this).siblings('h3').slideToggle('fast');
this
引用a
元素,find
搜索其descendants
中的元素。 h3
不是后代,而是兄弟姐妹。
答案 2 :(得分:3)
你需要这个:
$('article a').click(function() {
$(this).closest('article').find('h3').slideToggle('fast');
});
答案 3 :(得分:1)
在您的代码中,$('article a')
和随后的$(this)
正在寻找锚点内部。
答案 4 :(得分:1)
这是更新代码,检查出来,你需要指定它的兄弟,欢呼
$(document).ready(function() {
//hides articles
$('article h3').hide();
//article accordian
$('article a').click(function() {
$(this).siblings('h3').slideToggle('fast');
});
});