2013-08-22 38 views
7

我在我的頁面中動態創建了我的複選框。我想爲所有動態創建的複選框 添加單擊事件。將事件添加到jquery mobile中動態創建的複選框

這是我的代碼。

<div data-role="fieldcontain"> 
     <fieldset data-role="controlgroup" id="br"> 

     </fieldset> 
</div> 

我動態創建複選框,並追加到fieldset。我使用(),live(),deligate()方法在複選框上添加事件處理程序。

$('#br').delegate('click','input:checkbox', function(event) { 
    alert('selected'); 
}); 



$('#br').on('click','input:checkbox', function(event) { 
alert('selected'); 
}); 

沒有什麼工作對我來說...

回答

24

使用複選框/單選按鈕,使用change事件。

Demo

$(document).on('change', '[type=checkbox]', function() { 
// code here 
}); 

此外,您還可以使用click但股利包裹的複選框。

$(document).on('click', 'div.ui-checkbox', function() { 
    // code here 
}); 
+0

我跟着你的樣品,它工作正常,但只是一件小事。我用剃刀使用asp.net mvc,我創建了這樣的複選框 @Html.DisplayFor(Function(Model) Model.name) @Html.CheckBoxFor(Function(Model) Model.isSelected) 我沒有得到複選框時,我點擊超鏈接。是你的一個作品,因爲你創造了checboxradio。我不知道什麼是差異甚至想到:) – batmaci

0

對於可摺疊列表(或任何)內的dinamically添加按鈕,我這樣做:

$(document).on("click", "#listaEntrada input", function(evt) { 
     var txSeleccionado = $(this).text(); //<-El Texto Seleccionado 
     console.log(evt); 
}); 
0

試試這個,它的工作動態添加複選框。

$(document).on("click", "INPUT[id^=checkboxId_]", function (event) { 
    var targetId = event.target.id; 

    if ($("#" + targetId + ":checked").length > 0) { 
     alert('checked'); 
    } 
    else { 
     alert('unchecked'); 
    } 
});