2012-01-04 5 views
1

С помощью этой простой разметки:JQuery атрибут класса инвертного по щелчку

<a id="foo" class="first" href="#"></a> 

Я хочу, чтобы получить что-то вроде этого:

$('#foo').click (function() { 
    if $('foo').hasClass('first') { $('foo').removeClass('first').addClass('second'); 

    if $('foo').hasClass('second') { $('foo').removeClass('second').addClass('first'); 
}); 

Я не знаю, до того, какой класс имеет элемент, если " первый "или" второй ". Как это можно сделать каждый раз, когда я нажимаю на элемент, обновляя чтение класса?

Хотел бы я быть ясным.

Любая помощь будет оценена.

Заранее спасибо.

ответ

4

Лучший способ использовать toggleClass() для переключения более одного класса в то время, чтобы пройти несколько классов к нему в то же время, как это:

$('#foo').click(function() { 
    $(this).toggleClass('first second'); 
}); 

Вы можете см. здесь: http://jsfiddle.net/jfriend00/HWkWC/

Примечание: вы можете передать более одного класса в toggleClass() (разделенные пробел), и он будет переключаться каждый класс самостоятельно, а не делать несколько вызовов до toggleClass(). Все это описано в jQuery doc для toggleClass.

+0

@dotNETbeginner - комментарий, который вы удалили, был правдивым при написании. Посмотрите на изменения предыдущего ответа (которые были сделаны без каких-либо комментариев). Основная причина, по которой я написал свой ответ, состояла в том, что другой ответ был настолько ошибочным и не использовал то, как «toggleClass()» может принимать несколько имен классов. – jfriend00

+0

спасибо за этот ответ, он отлично работает. Я голосую за этот ответ. Вы можете проголосовать за мой вопрос, если хотите. Спасибо. – bobighorus

3

http://api.jquery.com/toggleClass/

$('#foo').click(function() { 
    $(this).toggleClass('first').toggleClass('second'); 
} 
+0

+1, но обязательно обновите свой селектор от '$ ('foo')' до '$ ('# foo')' – naomik

+0

Вам нужно будет знать, какие классы переключаться, иначе я не вижу большого шанса в этом so;) – bardiir

+0

Спасибо naomik, но это не то, что мне нужно. – bobighorus