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

时间:2013-08-23 08:01:26

标签: javascript jquery

列表复选框更改事件不会在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 个答案:

答案 0 :(得分:1)

应该是

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

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

答案 1 :(得分:1)

试试这个:

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

如果您希望浏览父元素,请尝试     $( '#my_list“)。找到('。my_list_checkbox')。改变(函数(){         的console.log( “点击”);     });

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

答案 2 :(得分:0)

使用事件委派,因为#my_list.my_list_checkbox的父级,并且当.my_list_checkbox中的某个元素添加到#my_list时,事件会自动绑定。

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

答案 3 :(得分:0)

试试这个

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

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