Класс переключения jQuery для динамически назначаемого класса

Я пытаюсь переключить класс на одну кнопку, где класс будет динамически назначаться в зависимости от состояния. Вот мой код:

$('body').on('click', '.button', function () {
    var $itm = $(this).children(".icon");
    if ($itm.hasClass('hide')) {
        $itm.toggleClass('unhide', 'hide')
    } else {
        $itm.toggleClass('hide', 'unhide')
    }
});

Я пытаюсь добиться следующего: если кнопка имеет класс .hide, onclick переключает этот класс на .unhide и наоборот.

До сих пор единственное время, когда переключение классов работает, — это второй щелчок. Первый щелчок ничего не меняет.


person Mike    schedule 09.11.2013    source источник
comment
Можете ли вы опубликовать HTML-код, который вы применяете к этому, и пример на jsFiddle.net?   -  person j08691    schedule 10.11.2013
comment
Конечно, вот ссылка на jsFiddle jsfiddle.net/gLHrn   -  person Mike    schedule 10.11.2013


Ответы (1)


.toggleClass принимает одно или несколько имен классов, разделенных пробелом, например:

$('body').on('click', '.button', function () {
    $(this).children(".icon").toggleClass("hide unhide");
});

Рабочий пример (с изменением вашего HTML): http://jsfiddle.net/jfriend00/9tV33/

person jfriend00    schedule 09.11.2013
comment
@friend00 Не могу поверить, я пропустил такую ​​простую вещь. Спасибо - person Mike; 10.11.2013