スクリプトに問題があります。説明しようと思います。アイテムをクリックすると、スパンの属性を削除して別のクラスに置き換える必要があります。
リストの項目をクリックすると:
- テーマ名 (ul li span ) を取得します。
- クラス名の末尾に「-act」がない場合 ( defaultまたはdefault-act、選択状態にするために追加します。
- その他の項目については、「-act」を削除して非選択状態にします。
結果として、テーマ Name + '-act' と '-act' を含まない iten を持つ必要があります。
これが私のコードです: http://jsfiddle.net/DQTKX/21/
HTML
<section id="createform">
<ul>
<li id="theme_1">
<span class="default-act">Default</span>
<h3>Default</h3>
</li>
<li id="theme_2">
<span class="food">Food</span>
<h3>Food</h3>
</li>
<li id="theme_3">
<span class="supermarket">Supermarket</span>
<h3>Supermarket</h3>
</li>
<li id="theme_4">
<span class="travel">Travel</span>
<h3>Travel</h3>
</li>
</ul>
</section>
jQuery
$('ul li').on('click', function(){
var themeName = $(this).find('span').attr('class');
$(this)
.removeClass(themeName)
.addClass(themeName + '-act');
$(this).not('active')
.removeClass(themeName + '-act')
.addClass(themeName);
});
注意 :デフォルトでは、最初の項目には default-act のスパンがあり、赤いアイコンが表示されます。別の項目をクリックすると、「-act」を削除して選択項目に追加する必要があります。
編集
だから、私はより良い理解のために更新しました。スーパーマーケットや旅行のアイコンについて心配する必要はありません。その上、私は上のクラスを削除しました