私は同じページに2つ以上のアコーディオンを使用しようとしています。だから最初のアコーデオンは動作していますが、2番目のアコーディオンは動作しません。複数ページのアコーディオン
私は複数のイベントを逃したのだろうかと思っていました。
ここに私のhtmlとjsコードです。どのような助けも高く評価されます。
$('#accord > ul > li:has(ul)').addClass("has-sub");
$('#accord > ul > li > a').click(function() {
var checkElement = $(this).next();
$('#accord li').removeClass('active');
$(this).closest('li').addClass('active');
if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).closest('li').removeClass('active');
checkElement.slideUp('normal');
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#accord ul ul:visible').slideUp('normal');
checkElement.slideDown('normal');
}
if (checkElement.is('ul')) {
return false;
} else {
return true;
}
});
<div id='accord'>
<ul>
<li class="active">
<a href='javascript:void(0)'><span>Accordion</span></a>
<ul style="display: block;">
<div class="acc_cont">
//text
</div>
</ul>
</li>
<li>
<a href='javascript:void(0)'><span>Accordion</span></a>
<ul style="display: block;">
<div class="acc_cont">
//text
</div>
</ul>
</li>
</ul>
</div>
<div id='accord'>
<ul>
<li class="active">
<a href='javascript:void(0)'><span>Accordion</span></a>
<ul style="display: block;">
<div class="acc_cont">
//text
</div>
</ul>
</li>
<li>
<a href='javascript:void(0)'><span>Accordion</span></a>
<ul style="display: block;">
<div class="acc_cont">
//text
</div>
</ul>
</li>
</ul>
</div>
あなたのHTMLがあるため、重複 'で無効ですid属性を含む。それらはドキュメント内で一意でなければなりません。代わりにクラスを使用する –
Jqueryにインクリメンタルを設定する方法はあります –
インクリメンタルIDまたはクラスはパターンの反対です。私はあなたに答えを加えたので、これを修正する方法を見ることができます。 –