jQuery:选中复选框时触发事件

时间:2013-12-25 07:52:02

标签: javascript jquery html checkbox

我正在制作一个网络应用。在一个部分中,我有一个用javascript动态生成的清单。

我希望在检查核对表时执行jQuery函数。

以下是动态生成核对表的代码:

var checkbox = document.createElement("input");
    checkbox.setAttribute("type","checkbox");
    checkbox.setAttribute("class", "tickbox");
    document.getElementById("sortable").appendChild(checkbox);

这是执行时的输出HTML文件,显示实际创建了复选框:

<input type="checkbox" class="tickbox">

我希望在选中此框时执行一项功能。我试过了:

1

 $('.tickbox').change(function () {
        alert("Here");
        if ($(this).attr("checked")) {
        alert("Yeah");
        }

2。

if($(.tickbox).is(':checked')){
      alert("Yeah!!!");

3

$('.tickbox').each(function(){
    if($(this).is(':checked')){
      alert("Yeah!!!");
   }
   })

但没有任何效果。怎么了?我该怎么办?

注意:许多其他javaScript和jQuery,包括许多其他函数调用都工作正常。

3 个答案:

答案 0 :(得分:2)

您说您已动态添加了复选框,因此为了向该DOM添加事件处理程序,您必须使用.on()

示例

$(document).on('change','.tickbox',function(){
   if($(this).is(':checked')){
      alert("Yeah!!!");
   }
})

答案 1 :(得分:1)

试试这个......

var checkbox = document.createElement("input");
    checkbox.setAttribute("type","checkbox");
    checkbox.setAttribute("class", "tickbox");
    document.getElementById("sortable").appendChild(checkbox);
$(".tickbox").click(function(){
   if ($(this).is(':checked')) {
       alert("checked");
   }
});

示例:http://jsfiddle.net/7xY8Y/

答案 2 :(得分:0)

对于动态生成的元素,您需要在():

上使用
$(document).on("change",'.tickbox',function () {
   if ($(this).attr("checked")) {
   alert("Yeah");
 }
});

因为你的tickbox是动态创建的,所以你需要在文件上绑定事件以获取更改事件的类名称复选框。