2013-08-05 51 views
1

我一直在嘗試創建一個菜單,其中用戶點擊菜單項後,該項目將被設置爲活動狀態,並且上一個活動項目將被取消選擇。不過,我也不太清楚我在做什麼錯:http://jsfiddle.net/Z5M2a/15/使用jQuery設置ID

編輯:周圍的id和類切換,但仍然不知道什麼是錯的 的Javascript:

$(document).ready(function(){ 
    $('#menuOption').mousedown(function() { 
      $('#menuOption').attr('class', ''); 
      $(this).attr('class', 'active'); 

    }); 
}); 

HTML:

<div id="side-bar"> 
       <ul class="side-nav"> 
        <li class="divider"></li> 
        <li id="menuOption" class="active"><a href="#">Link 1</a></li> 
        <li class="divider"></li> 
        <li id="menuOption"><a href="#">Link 2</a></li> 
        <li class="divider"></li> 
        <li id="menuOption"><a href="#">Link 3</a></li> 
        <li class="divider"></li> 
        <li id="menuOption"><a href="#">Link 4</a></li> 
        <li class="divider"></li> 
       </ul> 
      </div> 

任何幫助,將不勝感激,謝謝!

+1

ID必須是唯一的。你知道,每個元素可以有多個類。 – JJJ

回答

1

你是不是正確引用的元素,你真的應該加入classes不會改變id

FIDDLE

你也可以使用,而不是click呼叫mousedown

$(document).ready(function(){ 
    $('.menuOption').click(function() { 
     $('.menuOption').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
1

變化$('mouseOption')$('.menuOption')

其他然後,你應該使用列表元素作爲分頻器(使用CSS代替)是從未

4

元素ID一般應該是靜態的。嘗試改變班級。

此外,將mouseOption更改爲.menuOption。這裏有一個工作小提琴:

http://jsfiddle.net/ByXJc/

$(document).ready(function(){ 
    $('.menuOption').mousedown(function() { 
     $('.menuOption').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
0

這是更好地使用一個額外的類此,作爲id S中的目的是爲了給元素的獨特的身份,而不是一個「國家」。

$(document).ready(function() { 
    $('.mouseOption').mousedown(function() { 
     $('.mouseOption').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
0

$('mouseOption')不存在!

$(".menuOption") 

意思是「選擇類menuOption的那些元素」(點是指「類」)