Вот простая функция "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}
Заранее спасибо!
Вы должны удалить другое имя класса цвета, а также проверить событие 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>
:)
Вам нужно удалить предыдущий связанный класс, а затем добавить новый класс.
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");
}
})
})
Демо: скрипка
Также в скрипке было много других проблем
Более короткий путь - toggleClass()
jQuery(function () {
$('input[type=radio][name=RadioGroup1]').change(function () {
$('.test').toggleClass("classGreen", this.value == 'Y');
$('.test').toggleClass("classRed", this.value != 'Y');
})
})
Демо: скрипка
$
означаетjQuery
. Если вы используете его, он должен быть включен.