我无法想出如何写这个。
请看我的标记结构,该结构在页面上重复出现多次。
<div class="module">
<div class="archive-info">
<span class="archive-meta">
open
</span>
</div>
<div class="archive-meta-slide">
</div>
</div>
在我的代码中,您可以看到一个<span>
元素,它是我的$metaButton
。当单击它时,它会运行div.archive-meta-slide
的动画 - 这很简单,但我试图只在当前的div.module
上运行动画,而它却对所有带有"archive-meta-slide"
类的div都运行了动画。我尝试使用this
来只对当前的div.archive-meta-slide
进行动画,但一直无法实现。
如果div.archive-meta-slide
在$metaButton
的父级div中,则很容易解决问题。但由于它在这个父级div之外,所以我无法正确遍历dom。
以下是我的脚本
var $metaButton = $("span.archive-meta"),
$metaSlide = $(".archive-meta-slide");
$metaButton.toggle(
function() {
$(this).parent().siblings().find(".archive-meta-slide").animate({ height: "0" }, 300);
$(this).parent().siblings().find(".archive-meta-slide").html("close");
},
function() {
$(this).parent().siblings().find(".archive-meta-slide").animate({ height: "43px" }, 300);
$(this).parent().siblings().find(".archive-meta-slide").html("open");
});
有人能帮忙吗?
谢谢 Josh
closest()
更加健壮,正如jfriend00所解释的那样。 - XoXo