#radio-button #jquery #eventtrigger
#переключатель #jquery #eventtrigger
Вопрос:
У меня проблема с этой функцией изменения jQuery:
<input type="radio" name="words" value="8" checked><span class="word">word1</span>
<input type="radio" name="words" value="6"><span class="word">word2</span>
$("input[@name='words']:checked").change(function(){
alert("test");
});
Проблема в том, что событие запускается только тогда, когда я нажимаю первый параметр (значение = 8), который установлен по умолчанию.
Как я могу вызвать событие при нажатии любой другой опции?
Пожалуйста, обратите внимание: я пробовал вышеупомянутую функцию как в Chrome, так и в Firefox, и у меня такая же проблема.
Спасибо!
Ответ №1:
должно быть $("input[name='words']").change(function(){
Ответ №2:
Вы только привязываете обработчик событий к :checked
элементам. Таким образом, поскольку первое из них input
имеет checked
установленное свойство, это единственное, которое получает обработчик события. Удалите :checked
, и она должна работать нормально:
$("input[name='words']").change(function(){
alert("test");
});
Вот рабочий пример. Обратите внимание, что я также удалил @
символ из вашего селектора. Вам это не понадобилось, начиная с jQuery 1.2 или чего-то подобного.
Комментарии:
1. ваш пример работает, но
@name
в вашем фрагменте кода ошибка
Ответ №3:
$("input[@name='words']:checked").change(function(){
Которая находит все input
элементы с именем words
(на самом деле, это не сработает: @
селектор атрибутов в стиле XPath был удален начиная с jQuery 1.3), которые проверяются, и привязывает к ним обработчик событий. Если элементы не отмечены при выборе, к ним не будут привязаны обработчики событий.
Самое простое решение — привязаться ко всем соответствующим элементам и запускать код только в том случае, если они были сняты:
$('input[name="words"]').change(function() {
if (!this.checked) { // checkbox was checked, now is not
alert('unchecked');
}
});
Ответ №4:
$("input[name='words']").change(function(){
alert("test");
});
Ответ №5:
$("input[@name='words']:checked").change(function(){
alert("test");
});
Вы подписались на функцию изменения только для радиокнопок, для которых установлен флажок ( :checked
). Удалите ее из селектора.
$("input[name='words']").change(function(){
alert("test");
});
Ответ №6:
- Укажите свойство id переключателей
- Добавьте свойство OnClick =»CheckClick()» на вторую кнопку повторного вызова.
-
В функции jquery CheckClick()
if ($ (‘#rb2’).attr(‘проверено’)) { оповещение (‘проверка rb2’); }