如果按一个特定复选框,则选中所有复选框

时间:2012-02-05 11:31:59

标签: jquery checkbox

对不起我的英语。 我一直在尝试创建一个动态表,可以在按下编辑按钮后编辑其中的数据类型。 问题是我在最后一列创建了复选框列后,我根本无法在jQuery中执行click函数。

创建函数如下所示:

$("#meetingspanel td:last").each(function(event){  // Adding the checking column and showing the editing buttons       
       $("#btnDelete").fadeIn("slow"); 
       $("#btnRename").fadeIn("slow");
       $("<td style=border:0px><input type='checkbox' id='btncb'></td>").insertAfter($("td:nth-child(6)")); 
}); 

并猜测我是否在我使用的函数内部:

$(":checkbox").click(function(event){
    alert("im here !");                 
});

当我点击复选框时它就找不到了。 帮助

1 个答案:

答案 0 :(得分:1)

如果我已正确理解您的问题,您将需要以允许它触发原始绑定后添加到DOM的元素的方式绑定click事件,因为您正在插入复选框在你的剧本中。

如果您使用的是jQuery 1.7+,请使用on

$(someAncestor).on("click", ":checkbox", function() {
    //Do stuff
});
当上面的代码执行时,

someAncestor需要是DOM中的元素,它是要触发事件的复选框的祖先。根据代码的外观,这可能是table元素。

如果您使用的是较旧版本的jQuery,请改为使用delegate方法。

这个工作的原因是DOM事件从它们起源的元素通过DOM冒泡。如果将事件处理程序绑定到祖先,则在事件到达该元素时执行该处理程序。 ondelegate方法提供了一种过滤这些事件的方法,因此只有当它们来自某个元素时才会被触发。