2016-03-23 91 views
0

トグルしながら、私の質問アコーディオンにプラスマイナス記号を追加したいと思います。 シンボルは折りたたまれているときはプラスで、展開されているときはマイナスでなければなりません。私は様々な投稿を検索しようとしましたが、それを見つけることができません。私はjqueryについて全く知らない。どんな助けもありがとう。あなたは、このリンク上の作業コードを見つけることができます。jqueryアコーディオンのプラスマイナス記号

http://www.bootply.com/X3tSn83qU1

+2

を変更するには、クラスを切り替えることができます質問に –

答えて

1

あなたはアイコンを追加し、あなたがコードを共有する必要がある画像

$(document).ready(function() { 
 
    $(".accordion li:has(ul) > div").prepend('<i class="glyphicon glyphicon-minus" />') 
 

 
    $(".accordion > li > div").click(function(e) { 
 
    if ($(e.target).is('input')) { //if clicked on input element don't do anything 
 
     return 
 
    } 
 
    $('.active').not(this).removeClass('active').next().slideUp(300); 
 
    $(this).toggleClass('active'); 
 
    var $next = $(this).next().slideToggle(300); 
 
    var $ico = $(this).find('i.glyphicon').toggleClass('glyphicon-plus glyphicon-minus') 
 
    if (false == $(this).next().is(':visible')) { 
 
     $('.accordion > ul').not($next).slideUp(300); 
 
     $('.accordion i.glyphicon').not($ico).addClass('glyphicon-plus').removeClass('glyphicon-plus'); 
 
    } 
 
    }); 
 
    $('li :checkbox').on('click', function() { 
 
    var $chk = $(this), 
 
     $li = $chk.closest('li'), 
 
     $ul, $parent; 
 
    if ($li.has('ul')) { 
 
     $li.find(':checkbox').not(this).prop('checked', this.checked); 
 
    } 
 

 
    do { 
 
     $ul = $li.parent(); 
 
     $parent = $ul.siblings(':checkbox'); 
 
     if ($chk.is(':checked')) { 
 
     $parent.prop('checked', $ul.has(':checkbox:not(:checked)').length == 0) 
 
     } else { 
 
     $parent.prop('checked', false) 
 
     } 
 
     $chk = $parent; 
 
     $li = $chk.closest('li'); 
 
    } while ($ul.is(':not(.someclass)')); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet" /> 
 
<ul class="accordion"> 
 
    <li class="js_slider"> 
 
    <div> 
 
     <input type="checkbox"><a href="#">North America</a> 
 
    </div> 
 
    <ul class="accordion"> 
 
     <li class="js_slider"> 
 
     <div> 
 
      <input type="checkbox"><a href="#">Canada</a> 
 
     </div> 
 
     </li> 
 

 
     <li class="js_slider"> 
 
     <div> 
 
      <input type="checkbox"><a href="#">United States of America</a> 
 
     </div> 
 
     <ul class="accordion"> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Alabama</a> 
 
      </div> 
 
      </li> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Alaska</a> 
 
      </div> 
 
      </li> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Florida</a> 
 
      </div> 
 
      </li> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Georgia</a> 
 
      </div> 
 
      </li> 
 
     </ul> 
 
     </li> 
 
     <li> 
 
     <div> 
 
      <input type="checkbox"><a href="#">Texas</a> 
 
     </div> 
 
     <ul class="accordion"> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Austin</a> 
 
      </div> 
 
      </li> 
 

 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Dallas</a> 
 
      </div> 
 
      </li> 
 

 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Irving</a> 
 
      </div> 
 
      </li> 
 

 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Houston</a> 
 
      </div> 
 
      </li> 
 
     </ul> 
 
     </li> 
 

 
    </ul> 
 
    </li> 
 

 
    <li> 
 
    <div> 
 
     <input type="checkbox"><a href="#">Latin America</a> 
 
    </div> 
 
    </li> 
 

 

 
    <li> 
 
    <div> 
 
     <input type="checkbox"><a href="#">Europe,Middle <br> East and Africa</a> 
 
    </div> 
 
    </li> 
 

 

 
    <li> 
 
    <div> 
 
     <input type="checkbox"><a href="#">Asia Pacific</a> 
 
    </div> 
 
    </li> 
 

 

 
</ul> 
 
<br> 
 
<br> 
 
<br> 
 
<ul class="accordion"> 
 
    <li> 
 
    <div> 
 
     <input type="checkbox"><a href="#">North America</a> 
 
    </div> 
 
    <ul class="accordion"> 
 
     <li> 
 
     <div> 
 
      <input type="checkbox"><a href="#">United States of America</a> 
 
     </div> 
 
     <ul class="accordion"> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox"><a href="#">Manager 1</a> 
 
      </div> 
 
      <ul class="accordion"> 
 
       <li> 
 
       <div> 
 
        <input type="checkbox"><a href="#">Alabama</a> 
 
       </div> 
 
       </li> 
 
       <li> 
 
       <div> 
 
        <input type="checkbox"><a href="#">Alaska</a> 
 
       </div> 
 
       </li> 
 
       <li> 
 
       <div> 
 
        <input type="checkbox"><a href="#">Florida</a> 
 
       </div> 
 
       </li> 
 
       <li> 
 
       <div> 
 
        <input type="checkbox"><a href="#">Georgia</a> 
 
       </div> 
 
       </li> 
 
       <li> 
 
       <div> 
 
        <input type="checkbox"><a href="#">Illinois</a> 
 
       </div> 
 
       </li> 
 
      </ul> 
 
      </li> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox">Manager 2</div> 
 
      </li> 
 
      <li> 
 
      <div> 
 
       <input type="checkbox">Manager 3</div> 
 
      </li> 
 
     </ul> 
 
     </li> 
 

 
    </ul> 
 
    </li> 
 
</ul>

+0

おかげで!しかし、子供の要素のチェックボックスの前には、親の右側にプラス記号を置いておきます。それ、どうやったら出来るの?どのようにしてjsにCSSを追加できますか? –

+0

@AnayaP更新を参照してください –

関連する問題