Проблема с удалением класса jquery

0

Может ли кто-нибудь помочь мне с этим?
В основном, я хочу, чтобы скрипт добавлял "активный" класс в "li" при щелчке и удалял его по другому клику - ну, он добавляет класс и автоматически удаляет его :-) Я был бы очень признателен за любое решение.

PS. Я рассмотрел другие вопросы, касающиеся этой проблемы, но я не нашел ответа, который бы мне помог.

jQuery(document).ready(function() {
    jQuery('li').each(function() {
        var faq = jQuery(this), state = true, answer = faq.next('.answer').hide().css('height','auto').slideUp();
        faq.click(function() {
            state = !state;
            answer.slideToggle(state);
            faq.addClass('active',state);
              if(jQuery("li").hasClass("active")) {
              jQuery(".active").remove(); }
        });
    });
});

JSFiddle

jQuery(".active").removeClass(); }

исправляет половину проблемы

  • 0
    .addClass не принимает второй параметр .. вы должны думать о .toggleClass
  • 0
    Не помогает ... jsfiddle.net/tc6Cj/1
Показать ещё 1 комментарий
Теги:
removeclass

1 ответ

2

это на самом деле .removeClass(), что вы должны попробовать.. !!

JS FIDDLE

jQuery(document).ready(function() {
    jQuery('li').each(function() {
        var faq = jQuery(this), state = true, answer = faq.next('.answer').hide().css('height','auto').slideUp();
        faq.click(function() {
            state = !state;
            answer.slideToggle(state);
            faq.addClass('active',state);
              if(jQuery("li").hasClass("active")) {
              jQuery(".active").removeClass(); }
        });
    });
});

ИЛИ

используя .toggleClass()

использование

jQuery(document).ready(function() {
    jQuery('li').each(function() {
        var faq = jQuery(this), state = true, answer = faq.next('.answer').hide().css('height','auto').slideUp();
        faq.click(function() {
            state = !state;
            answer.slideToggle(state);
            faq.addClass('active',state);
           $( this ).toggleClass( "active" );
        });
    });
});

DEMO FIDDLE

Обновить

обновлено на основе комментария @AndyAndy:

представь это

имеет значок "+", и при щелчке он меняется на значок "-" и появляется ответ.
jQuery(document).ready(function() {
    jQuery('li').each(function() {
        var faq = jQuery(this), answer = faq.next('.answer').hide().css('height','auto').slideUp();
        faq.click(function() {

            answer.slideToggle('.active');


            if($(this).text()=='+')
            {
            $(this).text('-');
            }
            else{
            $(this).text('+');
            }


        });
    });
});

обновленная скрипка

  • 1
    Спасибо! Это именно то, чего мне не хватало!
  • 0
    На самом деле, когда я смотрю в код, он не добавляет класс ... Есть идеи?
Показать ещё 12 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню