在jquery中未激发列表复选框更改事件

List Checkbox change event not fire in jquery

本文关键字:复选框 事件 列表 jquery      更新时间:2023-09-26

列出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");
});

它应该是

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

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

试试这个:

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

如果要浏览父元素,请尝试$('#my_list").find('.my_list_checkbox').change(function(){console.log("已单击");});

在这种情况下,如果.change不起作用,您也可以尝试使用.focuout()函数。。。

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

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

试试这个

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

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