动态添加单击事件到复选框,仅适用于第一个复选框JQUERY

所以我正在使用几个ascx,每个控件上有不同的复选框区域。 我原来用的

$('[type=checkbox]').click ( function(){ code }); 

它完成了工作,起初。 但是,当我添加另一个控件,也使用复选框时,该函数也为其他复选框启动,所以我将js升级为

  $('#chck').click(function(){ code }); 

但有了这个,它只会触发该列表中第一个复选框的事件..如何才能触发所有点击?

我也试过这个:

  $('#chck').each(function(){ $(this).click({ function() { code }); }); 

这只适用于第一个

这是我的ascx页面示例:

        .....    

这是我的JS代码段

  $(document).ready(function(){ $("#chck").each(function () { $(this).click(function () { onchange($(this)); }); }); }); function onchange(checkbox) { // adds contact to list } 

id必须是唯一的。 改为使用一个类:

  
 $('.chck').click(function(){ code }); 

请参阅在same page is invalid.using same ids for multiple elems same page is invalid.

IDs should be unique to each element. When this happens browser only selects first of it.

要克服这个问题,必须将id更改为class 。 所以你have to do same thing with your markup change id to class

  // <----change id to class for every input 

现在你的脚本应该是:

 $('.chck').each(function(){ //<-----use '.' notation for class selectors $(this).click(function() { onchange($(this)); }); });