前提・実現したいこと
プログラミング初心者です。
1つのhtml内で「もっと見る」を実装しているのですが、2つ以上ある場合2つ目が動かなく、どのように対処すれば良いか知りたいです。
section1も2も、最初の2つのリスト以外を非表示にするという振る舞いは動いていますが、click時に同じdiv内のul#listをターゲットにしてイベントを発生させたいです。
該当のソースコード
jQuery
1var moreNum = 2; 2//最初の2件以外、非表示にする 3$('ul #item:nth-child(n + ' + (moreNum + 1) + ')').addClass('is-hidden'); 4 5$('#more-button').on('click', function () { 6 // slice 7 $('ul #item.is-hidden').slice(0, moreNum).removeClass('is-hidden').addClass('is-show'); 8 // 表示するものがなくなったらボタン消す 9 if ($('#item.is-hidden').length == 0) { 10 $('#more-button').fadeOut(2000); 11 } 12});
html
1 <div class="section1"> 2 <ul> 3 <li id="list"></li> 4 <li id="list"></li> 5 <li id="list"></li> 6 <li id="list"></li> 7 <li id="list"></li> 8 </ul> 9 <button id="more-button"></button> 10 </div> 11 <div class="section2"> 12 <ul> 13 <li id="list"></li> 14 <li id="list"></li> 15 <li id="list"></li> 16 <li id="list"></li> 17 <li id="list"></li> 18 </ul> 19 <button id="more-button"></button> 20 </div>
試したこと
jQuery
1$('#more-button').prev('ul #userlist-item.is-hidden').slice(0, moreNum).removeClass('is-hidden').addClass('is-show');
としてみましたが、今度はsection1も2も動かなくなりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/29 06:03
2021/11/04 04:19