0
私はGoogleとこのフォーラムで調べましたが、必要なものが見つからないか、コードに適用する方法がわかりません。タブがアクティブなときに子(孫)クラスを変更する
私が達成しようとするのは、タブが選択されているときにアイコンを変更することです(強調表示します)。アイコンのために私はスプライトimgを使用し、{{icon}}はアイコンの名前を持つリストです。
HTML:
<ul class="nav nav-icons" role ="tablist">
{% for icon in icon_list1 %}
<li class="nav-item">
<a href="#{{icon}}" role="tab" aria-controls="{{icon}}" data-toggle="pill" aria-expanded="false">
<div class="icon-{{icon}}"></div>
</a>
</li>
{% endfor %}
</ul>
- は、私は別のセクションごとに異なるicon_listと私のページにこのコードを3回を持っています。 とページがアクティブになるように、各リストでの最初の項目をロードし、ので、ここでのliのelemがアクティブdiv要素があるとき(赤色のアイコン)
JS
$(document).ready(function() {
$('.nav.nav-icons .nav-item:first-child').addClass('active');
$('.nav-item').find('div').toggleClass(function(){
var className = $(this).attr('class');
var classRed = className + '-red';
if ($(this).parents().is(".active")) {
return classRed ;
}else{
return className;
}
});
});
を強調表示されたとき、私は希望クラスが 'icon-name'から 'icon-name-red'に変更され、別のタブが選択された場合、以前のdivクラスと同じものが 'icon-name'に戻されます。問題は、何か起こるために2回クリックしなければならないクリックイベントを追加することです。
私は誰かがこれを手伝ってくれることを願っています。
おかげ