對於一點點背景,我有多個複選框,每個複選框用不同的「分數」加權。當複選框更改時,我需要計算分數。我認爲像下面這樣的東西會起作用,但它看起來並不像.change事件被正確綁定。Jquery:綁定更改爲多個複選框
$(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',看到我的回答更多信息。 – BrunoLM 2010-10-13 14:50:12
似乎所有的答案都缺少這樣一個事實,即每個ID都有一個獨特的「分數」。這就是爲什麼我有id - >分數的映射。我做了點擊 - >檢查修正上面,並改變了評論,以顯示我想要完成的。我承認我可能會把這全部弄錯。 ;) – 2010-10-13 14:51:42
我添加了一個答案,以保持您正在使用的基本結構。我想你試圖在處理程序內部引用'key',認爲它會有ID。麻煩的是,你給你的處理器自己的'key'參數,它實際上是指'event'對象。刪除(或重命名),並且你有'鑰匙'。但是你不需要它,因爲你直接引用了你需要的ID,因爲'this'引用了接收事件的那個,所以'this.id'就是這個ID的ID。 – user113716 2010-10-13 14:59:55