addClass не работает

0

Вот простая функция "addClass", которую я пытаюсь, но она не работает. Должна быть простая вещь, сидящая где-то в коде))). Текст должен изменить цвет на основе выбора пользователя в radioGroup1 здесь http://jsfiddle.net/PatrickObrian/gdb5t/

HTML

<div class="test">Information that I want to be coloured</div>
<div>
   <label><input type="radio" id="A" name="RadioGroup1" value="Y">Yes</label>
    <br>
   <label><input type="radio" id="B" name="RadioGroup1" value="N">No</label>
</div>

JS

<script>
 $('input[type=radio][name=RadioGroup1]').change(function(){
 if (this.value == 'Y') {
        $('.test').addClass("classGreen");
}
else if (this.value == 'N') {
        $('.test').addClass("classRed");
}
    }


</script>

CSS

.classGreen {color: green} 
.test {font-size:24px}
.classRed {color: red}

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

Теги:
addclass

2 ответа

1
Лучший ответ

Вы должны удалить другое имя класса цвета, а также проверить событие click:

$('input[type=radio][name=RadioGroup1]').click(function(){
    if (this.value == 'Y') {
       $('.test').removeClass("classRed").addClass("classGreen");
    }
    else if (this.value == 'N') {
       $('.test').removeClass("classGreen").addClass("classRed");
    }
});

а также я не знаю, но это сработало для CSS:

<style type="text/css">
.test { font-size:24px }
.classRed { color: red }
.classGreen { color: green } 
</style>

:)

5

Вам нужно удалить предыдущий связанный класс, а затем добавить новый класс.

jQuery(function () {
    $('input[type=radio][name=RadioGroup1]').change(function () {
        if (this.value == 'Y') {
            $('.test').removeClass('classRed').addClass("classGreen");
        } else if (this.value == 'N') {
            $('.test').removeClass('classGreen').addClass("classRed");
        }
    })
})

Демо: скрипка

Также в скрипке было много других проблем

  • jQuery не был включен
  • часть стиля была неправильной
  • были синтаксические ошибки

Более короткий путь - toggleClass()

jQuery(function () {
    $('input[type=radio][name=RadioGroup1]').change(function () {
        $('.test').toggleClass("classGreen", this.value == 'Y');
        $('.test').toggleClass("classRed", this.value != 'Y');
    })
})

Демо: скрипка

  • 0
    Ой ну спасибо!!!! Нужно ли включать JQuery для функциональности addClass?
  • 1
    @ Александр $ означает jQuery . Если вы используете его, он должен быть включен.
Показать ещё 17 комментариев

Ещё вопросы

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