我正在使用一个 jquery 手风琴,我从 Learning Jquery 网站上的教程中重新制作:http:
//www.learningjquery.com/2007/03/accordion-madness
它工作得非常好,除非我把它放在一个循环中。两次迭代后,手风琴显示完全打开,根本不工作......
贾斯文
<script type="text/javascript">
//simultaneous showing and hiding
$(document).ready(function() {
$('div.tiny-accordion:eq(0) > div').hide();
$('div.tiny-accordion:eq(0) > h3').click(function() {
$(this).next('div').slideToggle('fast')
.siblings('div:visible').slideUp('fast');
});
$('div.tiny-accordion:eq(1) > div').hide();
$('div.tiny-accordion:eq(1) > h3').click(function() {
var $nextDiv = $(this).next();
var $visibleSiblings = $nextDiv.siblings('div:visible');
if ($visibleSiblings.length ) {
$visibleSiblings.slideUp('fast', function() {
$nextDiv.slideToggle('fast');
});
} else {
$nextDiv.slideToggle('fast');
}
});
});
</script>
HTML 是大循环的一部分
<div class="tiny-accordion">
<h3><div>1</div></h3>
<div>
<div class="line">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
<h3><div>2</div></h3>
<div>
<div class="line">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
<h3><div>3</div></h3>
<div>
<div class="line">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
</div>
CSS:
/* MENU ACCORDEON */
.tiny-accordion{
width: 245px;
position: relative;
}
.tiny-accordion h3{
position: relative;
top: 0px;
cursor: pointer;
padding: 0px;
margin: 0px 0px 10px 0px;
height: 29px;
}
.tiny-accordion div{
background-color: #F5F5F5;
}
这似乎是一个 js 问题,因为在循环中一切正常,除了手风琴。我还尝试手动重复 html 代码 3 次和 4 次,这是同样的问题。
这是一个 jsfiddle 链接:http:
//jsfiddle.net/TF5AV/