我在这里缺少什么?当我点击'h2 a'链接时,.content ol应该切换。我无法弄清楚它为什么不起作用:(
<script type="text/javascript">
$(document).ready(function(){
$(".content ol").hide();
$(".content h2 a").click(function(){
$(this).find(".content ol").toggle(400);
});
});
</script>
<div class="content">
<h2><a href="#">click me</a></h2>
<ol>
<p>Some text</p>
</ol>
</div>
答案 0 :(得分:1)
问题是find
查找的元素是当前所选元素的后代。您正在this
内查看,这是点击的链接。显然,ol
不在a
元素中。
您需要使用closest
,将树向上移至div
,然后仅然后使用find
:
$(".content h2 a").click(function(){
$(this).closest('.content').find("ol").toggle(400);
});
答案 1 :(得分:0)
@andy,我已经创建了一个jsfiddle,可以为你清理一下幻灯片。应该适用于所有现代浏览器。
$(document).ready(function(){
$(".content ol").hide();
$(".content h2 a").click(function(){
$('.content').find(" ol").slideToggle(400);
});
});
您可能需要考虑使用$。(object).slideToggle()而不是toggle()来进行平滑的向上/向下切换。