【发布时间】:2012-06-08 13:03:08
【问题描述】:
我正在使用 jQuery 并设法将一个简单的手风琴粘贴在一起,它只能同时打开手风琴的一个部分。具有子项的手风琴的每个部分都有一个“+”号来表示这一点。单击该部分并展开内容时,“+”图标切换为“-”。 在我需要在同一页面上放置 2 个(或更多)手风琴之前,这一切都很好用。它现在的工作方式,脚本将所有扩展的 div “-”-icons 从“-”切换到“+”。我只希望与最近点击的链接相同的 div 中的 +/- 图标进行切换,就像现在一样,点击链接时扩展部分的所有图标都会更改。
这里是使用的脚本:
$(document).ready(function() {
$(".accordion dd").hide();
$(".accordion dt a").click(function(){
$(this).parent().next().siblings("dd:visible").slideUp("slow");
$(this).parent().next().slideToggle("slow");
if ($(this).is("expanded")) {
$(this).toggleClass("expanded");
} else {
$(".accordion dt a").removeClass("expanded");
$(this).addClass("expanded");
}
return false;
});
});
这是一些 html。下面的 html 就是一个例子。如果页面上有多个列表,则会重复下面的html结构。
<div style="position:relative;" class="regularBorder roundedCorner">
<h2>header</h2>
<dl class="accordion">
<dt class="roundedCorner navbarBG first noSideBorder">
<a href="/">Lorem Ipsum 1</a></dt>
<dd>
<ul class="accordion noSideBorder">
<li><a href="#">Lorem ipsum dolor</a></li>
<li><a href="#">Lorem ipsum dolor</a></li>
</ul>
</dd>
<dt class="roundedCorner navbarBG noSideBorder">
<a href="/">Lorem Ipsum 2</a></dt>
<dd>
<ul class="accordion noSideBorder">
<li><a href="#">Lorem ipsum dolor</a></li>
<li><a href="#">Lorem ipsum dolor</a></li>
</ul>
</dd>
<dt class="roundedCorner navbarBG noSideBorder">
<a href="/">Lorem Ipsum 3</a></dt>
<dd>
<ul class="accordion noSideBorder">
<li><a href="#">Lorem ipsum dolor</a></li>
<li><a href="#">Lorem ipsum dolor</a></li>
</ul>
</dd>
</dl>
</div>
因此,我们将不胜感激有一个简单的解决方案来完成这项工作!
【问题讨论】:
-
您不能使用唯一 ID 并将它们作为参数提供给您的脚本吗?
标签: jquery accordion classname