ユーザーがクリックしたときに画像を変更したいスプライトタブメニューがあります。問題は、それを適切に行う方法がわからないことです。これは私が持っているものです:
<ul id="addCategoryList">
<li id='task' class="sprite-add-task-category-tasks menu-task "></li>
<li id='grades' class="sprite-add-task-category-tasks menu-grades-inactive"> </li>
<li id='results' class="sprite-add-task-category-tasks menu-results-inactive"></li>
<li id='other' class="sprite-add-task-category-tasks menu-other-inactive"></li>
</ul>
これはJavaScriptです:
var getCategory = $('addCategoryList').getChildren();
getCategory.each(function(li){
li.addEvent('click', function(){
this.removeClass('menu-'+this.id+'-inactive').addClass('menu-'+this.id);
});
});
問題は、クリックすると、クリックされたカテゴリだけでなく、アクティブなカテゴリが 2 つ表示されることです。それらはすべて共通のスプライトを共有し、「menu-id-inactive」と「menu-id」の唯一の違いは、ユーザーがクリックしたときに画像が強調表示される背景位置であるため、そのように名前を付けました/