2012-01-23 3 views
0

Как добавить активный класс с помощью jquery к элементам меню с несколькими классами? До сих пор, мой код ниже не работает:jquery добавить активный класс несколько классов с другим jquery

Jquery

$('#foo_menu li a').click(function(){ 
    $('#foo_menu li a').removeClass('menucolor'); 
    $(this).addClass('menucolor'); 
}); 

HTML

<ul id="foo_menu"> 
<li><a href="/fooA" class="fooa qtipmenu menucolor" id="foo_A"></a></li> 
<li><a href="/fooB" class="foob qtipmenu" id="foo_B"></a></li> 
<li><a href="/fooB" class="fooc qtipmenu" id="foo_C"></a></li> 
</ul> 

Примечание: класс qtipmenu создает всплывающие окна с JQuery - http://craigsworks.com/projects/qtip2/); не уверен, если это конфликтует со скриптом Jquery выше

CSS

#menu li a.fooa { 
    background-image: url(/images/foo_a.png); 
    height: 20px; 
    width: 20px; 
} 
#menu li a.menucolor { 
    background-position: left bottom; 
    height: 20px; 
    width: 20px; 
} 
+0

Вы уверены, что код скопирован как есть в файле? –

+0

Ваш код jQuery должен отлично работать для установки щелчка на теге '', чтобы иметь класс 'menucolor'. в чем именно проблема?: – jfriend00

+0

@ jfriend00 Работает в другом месте на сайте, но не для этого меню. Мне интересно, потому что каждый элемент меню имеет отдельный класс (для меню изображения), а также разделяет класс (для всплывающего меню). – chowwy

ответ

2

Как показано в this jsfiddle вы можете увидеть, что ваш код работает отлично. (Я изменил селектор, чтобы удалить класс menucolor, хотя это не имеет значения).

Ваша проблема почти наверняка лежит в другом месте.

removeClass и addClass функции работают независимо от количества классов.

+0

На самом деле вы сделали 2 вещи, которые помогли: у вас был щелчок (функция (e) - у меня был щелчок (функция(), без e и e.preventDefault(). Теперь я получаю активный класс для переключения. Но preventDefault не позволит мне загружать страницу - и функция класса add не работает без prevDef – chowwy

+0

Oh! Это объясняет это. Я решил, что ваши ссылки не перезагружают страницу и что вы хотите, чтобы они запускались нормально Ну, тогда - радость для всех! –

+0

Одна небольшая проблема: активный класс в меню работает отлично, но preventDefault не позволит загружать страницы. И без prevDef активный класс в меню не работает, но загружаются страницы. Любые мысли о том, почему это может происходить? – chowwy

Смежные вопросы