0

列表复选框更改事件不会在 jquery 中触发。

列表创建:

$("#my_list").append("<li><input type='checkbox' class='my_list_checkbox' value='"+id+"' name='"+name+"'/><img class=\""+icon_class+"\" /><label style='padding-left:25px'>"+name+"</label></li>");

我尝试了以下事件,但没有人工作,如何解决这个问题?

$(".my_list_checkbox").on("change",function(){
    console.log("clicked");
});

$(".my_list_checkbox").click(function(){
    console.log("clicked");
});

$("#my_list .my_list_checkbox").on("change",function(){
    console.log("clicked");
});

$("#my_list .my_list_checkbox").click(function(){
    console.log("clicked");
});

$("#my_list li").delegate("input[type:checkbox]","change",function(){
    console.log("clicked");
});

$("#my_list > li > input[type=checkbox]").change(function(){
    console.log("clicked");
});
4

4 回答 4

1

它应该是

$("#my_list").on('change', "input[type=checkbox]",function(){
    console.log("clicked");
});

或者

$("#my_list").on('change', ".my_list_checkbox",function(){
    console.log("clicked");
});
于 2013-08-23T08:03:31.147 回答
1

试试这个:

$('.my_list_checkbox').change(function(){
    console.log("clicked");
});

如果您希望通过父元素,请尝试 $('#my_list").find('.my_list_checkbox').change(function(){ console.log("clicked"); });

在这种情况下,如果 .change 无法正常工作,您也可以尝试使用 .focusout() 函数...

于 2013-08-23T08:10:44.207 回答
0

使用事件委托,As#my_list是父级,.my_list_checkbox并且当任何带有类的元素.my_list_checkbox添加到#my_list事件时,都会自动绑定。

$("#my_list").on("change", ".my_list_checkbox" ,function(){
    console.log("clicked");
});
于 2013-08-23T08:03:15.707 回答
0

试试这个

$("#my_list .my_list_checkbox").click(function(){
    console.log("clicked");
});

或者

$("#my_list").on('click', ".my_list_checkbox",function(){
   console.log("clicked");
});
于 2013-08-23T08:04:57.210 回答