初心者です。
以下のようにリストをアコーディオンにしています。
mainもsubもbuttonを押すとappearが出現し、cssのopenというクラスを付与します。
openが付与されると、cssのcontentでbuttonの文章が変わります。
質問ですが、jQueryで全く同じ内容の文章を2回書くのはスマートではないので、もっとよい書き方を教えていただきたいと思い投稿させていただきました。
よろしくお願いいたします。
【html】 <div class="contents_ttl"> タイトル </div> <div id="main" class="contents_box"> <ul> <li> <div class="txt">aaaaa</div> </li> <li> <div class="txt">bbbbb</div> </li> <li> <div class="txt">ccccc</div> </li> <li> <div class="txt">ddddd</div> </li> <li class="appear1"> <ul> <li> <div class="contents_ttl"> タイトル </div> </li> <li> <div class="txt">eeeee</div> </li> <li> <div class="txt">fffff</div> </li> <li> <div class="txt">ggggg</div> </li> <li> <div class="txt">hhhhh</div> </li> </ul> </li> <li class="readmore button1"> <a href="#"><span></span></a> </li> </ul> </div> <div class="contents_ttl"> タイトル </div> <div id="sub" class="contents_box"> <ul> <li> <div class="txt">aaaaa</div> </li> <li> <div class="txt">bbbbb</div> </li> <li> <div class="txt">ccccc</div> </li> <li> <div class="txt">ddddd</div> </li> <li class="appear2"> <ul> <li> <div class="contents_ttl"> タイトル </div> </li> <li> <div class="txt">eeeee</div> </li> <li> <div class="txt">fffff</div> </li> <li> <div class="txt">ggggg</div> </li> <li> <div class="txt">hhhhh</div> </li> </ul> </li> <li class="readmore button2"> <a href="#"><span></span></a> </li> </ul> </div>
【jQuery】 $(function(){ $('.appear1').hide(); $('.button1').click(function(){ $('.appear1').slideToggle(); $(this).toggleClass('open1'); return false; }); }); $(function(){ $('.appear2').hide(); $('.button2').click(function(){ $('.appear2').slideToggle(); $(this).toggleClass('open2'); return false; }); });
【css】 .contents_box ul li.readmore a span::after { content: "続きを読む"; } .contents_box ul li.open2 a span::after { content: "閉じる"; }
回答3件
あなたの回答
tips
プレビュー