पृष्ठभूमि के कुछ हिस्सों के लिए, मेरे पास एकाधिक चेकबॉक्स हैं, प्रत्येक एक अलग "स्कोर" के साथ भारित हैं। जब चेकबॉक्स बदल जाता है, तो मुझे स्कोर की गणना करने की आवश्यकता होती है। मैंने सोचा कि निम्नलिखित की तरह कुछ काम करेगा लेकिन ऐसा नहीं लगता है। एक्सचेंज इवेंट ठीक से बाध्य किया जा रहा है।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
}
});
});
}
मुझे पता है कि यह सरणी के माध्यम से सही ढंग से लूपिंग कर रहा है, लेकिन एक्सचेंज में एक चेतावनी कभी नहीं देखी जा रही है।
यह होना चाहिए ': बजाय' की checked': clicked', अधिक जानकारी के लिए मेरा उत्तर देखें। – BrunoLM
ऐसा लगता है कि सभी उत्तरों इस तथ्य को याद कर रहे हैं कि प्रत्येक आईडी में एक अद्वितीय "स्कोर" होता है। यही कारण है कि मेरे पास आईडी -> स्कोर का मानचित्रण है। मैंने क्लिक किए गए -> ऊपर सुधार किए गए सुधार किए और टिप्पणियों को बदलने के लिए जो मैं पूरा करने की कोशिश कर रहा हूं उसे बदल दिया। मैं स्वीकार करूंगा कि मैं इस सब गलत के बारे में जा रहा हूं। ;) –
मैंने एक उत्तर जोड़ा जो उस मूल संरचना को रखता है जिसके साथ आप काम कर रहे थे। मुझे लगता है कि आप हैंडलर के अंदर 'कुंजी' को संदर्भित करने की कोशिश कर रहे थे क्योंकि यह आईडी होगी। समस्या यह थी कि आपने अपने हैंडलर को अपना 'कुंजी' पैरामीटर दिया, जो वास्तव में 'ईवेंट' ऑब्जेक्ट का जिक्र कर रहा है। उस निकालें (या नाम बदलें), और आपके पास 'key' होगा। लेकिन आपको इसकी आवश्यकता नहीं है, क्योंकि आपके पास जिस आईडी की आवश्यकता है उसका प्रत्यक्ष संदर्भ है क्योंकि 'यह' घटना प्राप्त करने वाले व्यक्ति का संदर्भ देता है, इसलिए 'this.id' उस आईडी का आईडी है। – user113716