Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript/jquery为文档中的所有和任何复选框中的更改创建事件侦听器?_Javascript_Jquery_Dom - Fatal编程技术网

如何使用javascript/jquery为文档中的所有和任何复选框中的更改创建事件侦听器?

如何使用javascript/jquery为文档中的所有和任何复选框中的更改创建事件侦听器?,javascript,jquery,dom,Javascript,Jquery,Dom,我希望能够为文档中的所有和任何复选框创建事件侦听器。因为复选框和单选按钮将通过JavaScript动态添加,而不是为每个复选框和单选按钮都有一个单独的事件侦听器,如果可能的话,只需要一个通用的事件侦听器就可以使用jquery change函数检查任何复选框中的更改。我知道如何通过一个复选框来实现这一点 $('input[name=manybackgrounds]').change(function(){ if($(this).is(':checked')) { alert("it is

我希望能够为文档中的所有和任何复选框创建事件侦听器。因为复选框和单选按钮将通过JavaScript动态添加,而不是为每个复选框和单选按钮都有一个单独的事件侦听器,如果可能的话,只需要一个通用的事件侦听器就可以使用jquery change函数检查任何复选框中的更改。我知道如何通过一个复选框来实现这一点

$('input[name=manybackgrounds]').change(function(){
if($(this).is(':checked'))
{
    alert("it is checked");
}
else
{
    alert("not checked");
}    
}))


但由于它们可能是不可预测的复选框数量,因此检查是否有任何更改,然后询问哪些动态生成的复选框已被选中,将更容易。提前感谢您,非常感谢您的帮助。

所有复选框的选择器为:

$('input[type=checkbox]')
现在你想用它做什么就做什么

编辑:

对于动态复选框

$(document).on('change', 'input[type=checkbox]', function(e) {
    //DO YOUR THANG
});

阅读了解更多信息

正如@JamesMontagne所指出的,您需要使用事件委派。确保将它们添加到您可以使用的容器中,然后在该容器上添加事件处理程序

如果您保证将其添加到#容器中,您可以执行以下操作:

$("#container").on("click", "input[name=manybackgrounds]", function() { 
    if($(this).is(':checked'))
    {
        alert("it is checked");
    }
    else
    {
        alert("not checked");
    }    
});

src:

请看您想要的活动委派。非常感谢您的额外评论,这也很有帮助。@JamesMontagne现在有了。@Blazemonger他的评论在编辑之前:)在这种情况下,请编辑评论。(仅供参考,不是我的反对票)太好了,我试过了,效果很好,而且我似乎也可以用它来准确地确定选中了哪个复选框,这正是我所需要的。谢谢