我有两个列表,我希望它们的功能类似于手风琴,当单击指定的元素时,指定的列表被隐藏,再次单击它会切换到显示。
的HTML:
<ul class="acc" id="acc">
<li>
<h3 class="slide">CATEGORIES</h3>
<div class="acc-section">
<div class="acc-content view">
<ul>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</div>
</div>
</li>
<li>
<h3 class="slide2">CATEGORIES</h3>
<div class="acc-section">
<div class="acc-content view2">
<ul>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</div>
</div>
</li>
</ul>
我已经使用以下代码为这两个列表完成了此操作:
$(document).ready(function() {
$('h3.slide').toggle(function() {
$('div.view').fadeOut('slow');
return false;
},
function() {
$('div.view').fadeIn('slow');
return false;
});
$('h3.slide2').toggle(function() {
$('div.view2').fadeOut('slow');
return false;
},
function() {
$('div.view2').fadeIn('slow');
return false;
});
});
我的问题是它不是“动态的”,如果我将来要添加另一个列表,那么我也必须使用上面的代码。我希望能够只使用一小段代码,并为可点击元素和显示/隐藏元素重用相同的两个类名。我尝试使用以下代码完成此操作,但无法使其正常工作:
$(document).ready(function() {
$('h3.slide').toggle(function() {
$(this).siblings('div.view').fadeOut('slow');
return false;
},
function() {
$(this).siblings('div.view').fadeIn('slow');
return false;
});
});
有小费吗?