Jquery Mobile - смена радиогруппы - PullRequest
5 голосов
/ 29 апреля 2011

Я уверен, что мне не хватает чего-то очень очевидного, так как я новичок в Jquery. Я использую Jquery Mobile со следующей разметкой:

<div>
    <input data-theme="c" type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" />
    <label for="radio-choice-1">Option 1</label>
</div>
<div>
    <input data-theme="c" type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2"  />
    <label for="radio-choice-2">Option 2</label>
</div>
<div>
    <input data-theme="c" type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3"  />
    <label for="radio-choice-3">Option 3</label>
</div>

и я пытаюсь выполнить действие при изменении значения.

Итак, у меня есть:

$(":input[@name='radio-choice-1']").change(function() {
        alert('clicked');
});

Теперь, когда я в первый раз выбираю опцию, событие не срабатывает. Он срабатывает, когда я впоследствии изменяю его (то есть во 2-й, 3-й и т. Д. Раз), но не первый. Я предполагаю, что это потому, что это не «изменено» само по себе, просто дано значение. Я пытался изменить его, чтобы щелкнуть, но затем он никогда не срабатывает.

Что мне здесь не хватает? Любая помощь высоко ценится.

Ответы [ 4 ]

13 голосов
/ 29 апреля 2011

Live Пример: http://jsfiddle.net/wWFGf/2/

Альтернативный синтаксис HTML: http://jsfiddle.net/wWFGf/3/

$("[name=radio-choice-1]").change(function() {
    alert('Selected: '+$('input[name=radio-choice-1]:checked').val());
});
4 голосов
/ 29 апреля 2011

Я думаю, что это поможет

$(document).ready(function() {

$(":input[@name='radio-choice-1']").live('change mousedown',function(event) { 
        alert('clicked'); 
}); 

});

Рабочий пример здесь http://jsfiddle.net/XVuAs/1/

1 голос
/ 29 апреля 2011
$('input[type="radio"]').change( function() {
        alert('clicked');
});

Выше кода, проверено и работает нормально для меня ...

0 голосов
/ 21 сентября 2011

Если вы динамически загружаете страницу, вам может потребоваться сделать что-то вроде этого:

$('input[type="radio"]').live('changed' function() {
alert('clicked live');  
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...