2014-11-24 81 views
1

我正在開發一個cordova android應用程序,其中我使用jquery進行開發。我使用其中是動態創建的單選按鈕使用下面的代碼單選按鈕組,無法捕獲jquery中的單選按鈕組更改事件

for(var i = 0; i < jsonArr.length; i++){ 

      var j = i+1; 

      $('#childInfoRadioGroup').prepend('<input type="radio" class="radioInput" name="radio-choice-v-2" id="radio-choice-v-"'+j+' value="on">'+ 
      '<label for="radio-choice-v-"'+j+'>'+jsonArr[i].name+'</label>').trigger('create');  

      $('#childInfoRadioGroup input').eq(i).attr("id",jsonArr[i].id); 

} 

HTML:

<form> 
    <fieldset data-role="controlgroup" id="childInfoRadioGroup"> 

    </fieldset> 
</form> 

我用下面的代碼用於捕獲改變事件,

$("input[name='radio-choice-v-2']").on("change", function() { 
    alert("changed!"); 
}); 

但我無法捕捉上述事件。任何人有任何想法?在此先感謝..

回答

2

因爲要動態生成HTML,嘗試事件代表團,如下圖所示: -

$(document.body).on("change","input[name='radio-choice-v-2']", function() { 
    alert("changed!"); 
}); 

OR

$("#childInfoRadioGroup").on("change","input[name='radio-choice-v-2']", function() { 
    alert("changed!"); 
}); 

Reference

+0

才能這樣做> $(「input [name ='radio-choice-v-2']」)。change(functio n()?只是問:) – 2014-11-24 06:37:49

+0

@akz,不,你不能這樣做,因爲單選按鈕組動態創建,這就是爲什麼我們必須使用事件委託方法。 – RGS 2014-11-24 06:41:16

+0

@ akz..no ..問題是你正在通過jquery動態生成html,所以你必須使用這個答案中顯示的事件委託。 – 2014-11-24 06:42:09

0
$(document).on("change","input[name='radio-choice-v-2']", function() { 
    alert("changed!"); 
}); 
相關問題