为了提供一些背景,我有多个复选框,每个都带有不同的“分数”。当复选框更改时,我需要计算分数。我认为以下代码可以工作,但似乎.change事件没有正确绑定。
$(document).ready(function() {
bindSomeCheckboxes();
});
function bindSomeCheckboxes() {
var score=0;
var checkboxes = {
"id_1" : 3,
"id_2" : 1,
"id_3" : 2,
"id_4" : 5
};
$.each(checkboxes, function(key, value) {
$("#"+key).change(function(key,value) {
if ($("#"+key).is(':checked')) {
//add this ids value to score
} else {
//subtract value from score
}
});
});
}
我知道它正确地遍历了数组,但是在.change中的警报从未被看到。
:checked
而不是:clicked
,请查看我的答案获取更多信息。 - BrunoLMkey
,以为它会有ID。问题是你给处理程序自己的key
参数,实际上是指event
对象。删除(或重命名)它,你就有了key
。但你不需要它,因为你有一个直接引用所需ID的引用,因为this
引用接收事件的那个,所以this.id
是那个的ID。 - user113716