3

最終的には動的にさらに追加することになるため、イベントをラジオ グループに委任する必要がありますが、最初のラジオ ボタンで 2 番目の関数を起動することはできません。

助けていただければ幸いです。それが違いを生む場合、私はjquery mobile 1.3.1を使用しています。

HTML:

<form id="officeChoice">
<fieldset data-role="controlgroup">
    <legend>office:</legend>
    <input type="radio" name="office" id="radio-choice-v-2a" value="on" checked="checked">
    <label for="radio-choice-v-2a">One</label>
    <input type="radio" name="office" id="radio-choice-v-2b" value="off">
    <label for="radio-choice-v-2b">Two</label>
    <input type="radio" name="office" id="radio-choice-v-2c" value="other">
    <label for="radio-choice-v-2c">Three</label>
</fieldset>

Jクエリ:

//This Works!

$('input[name=office]:radio').on('click',  function () {
var $value = $(this).val();
alert($value);
});

//This Doesnt

$('#officeChoice').on('click','input[name=office]:radio',  function () {
    var $value = $(this).val();
    alert($value);
});

フィドル:

http://jsfiddle.net/adam123/9wPc8/10/

4

2 に答える 2

3

作業例: http://jsfiddle.net/jWzGz/

に置き換えるclickchange、すべてが魅力的に機能します。

$('#officeChoice').on('change','input[name=office]:radio',  function () {
    var $value = $(this).val();
    alert($value);
});
于 2013-06-06T10:38:00.973 に答える
0

Jquery mobile はレンダリングされた html を変更します。正確にクリックするradio buttonと機能します。

レンダリングされた HTML コードをチェックして、何が起こっているかを確認してください。

<div class="ui-radio">
    <input type="radio" name="office" id="radio-choice-v-2b" value="off">
    <label for="radio-choice-v-2b" data-corners="true" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-icon="radio-on" data-theme="c" data-mini="false" class="ui-radio-on ui-btn ui-btn-hover-c ui-btn-up-c ui-btn-corner-all ui-fullsize ui-btn-icon-left"><span class="ui-btn-inner"><span class="ui-btn-text">Two</span><span class="ui-icon ui-icon-radio-on ui-icon-shadow">&nbsp;</span></span>
    </label>
</div>

したがって、Gajotres が提案したように、代わりに change イベントを使用してください。

于 2013-06-06T10:37:16.893 に答える