动态添加单击事件到复选框,仅适用于第一个复选框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)); }); });