Функция изменения переключателя jQuery не запускается, когда должна

#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");
});
  

Код:http://jsfiddle.net/DRasw/1 /

Ответ №6:

  1. Укажите свойство id переключателей
  2. Добавьте свойство OnClick =»CheckClick()» на вторую кнопку повторного вызова.
  3. В функции jquery CheckClick()

    if ($ (‘#rb2’).attr(‘проверено’)) { оповещение (‘проверка rb2’); }