javascript - Dynamic event attachment not working correctly -
इस सवाल का पहले से ही एक उत्तर है: < 31 उत्तरों
var smartActionsId = [ 'smartActions1', 'smartActions5', 'smartActions10']; के लिए (var i में SmartActionsId) {console.log ("smartActionsId =" + स्मार्टएक्शनआईडी [i]); $ ('#' + स्मार्टएक्शनआईडी [आई] + 'चयन')। परिवर्तन (फ़ंक्शन () {var value = $ (this) .val (); var disableValue; var ruleIndex = smartActionsId [i] .substr (11); (Value === '0') {disableValue = true; onRuleToggle (disableValue, ruleIndex)} और यदि (मान == = '1') {disableValue = false; onRuleToggle (disableValue, ruleIndex)}}); }
मैं ऊपर जावास्क्रिप्ट कोड का उपयोग करते हुए एक से अधिक स्विच स्लाइडर आइटम के लिए गतिशील रूप से परिवर्तन ईवेंट बना रहा हूं। लेकिन मैं जो समस्या का सामना कर रहा हूं वह है, जब मैं किसी भी स्विच 'आई' मान पर क्लिक करता हूं, तो अंतिम मूल्य के साथ प्रतिस्थापित किया जाता है अर्थात स्मार्टएक्शन में मेरे पास 3 तत्व हैं, जो कभी भी स्विच करते हैं I इसे अंतिम स्विच (स्मार्टएक्शन 10) के लिए प्रभाव बदलता है।
क्या आप कृपया इस समस्या को सुलझाने में मेरी सहायता कर सकते हैं?
आप घटना श्रोताओं को संलग्न नहीं करना चाहते हैं एक के लिए
लूप के अंदर क्योंकि प्रत्येक पाश चक्र द्वारा सूचक को ट्रैक करने वाले वेरिएबल का उपयोग किया जाता है यदि आप ऐसा करते हैं, तो i
चर हमेशा एआरए शून्य की लंबाई के बराबर होगा 1. उस कोड को रोकने के बजाय Array.prototype.forEach ()
का उपयोग करें।
var smartActionsId = ['स्मार्टएक्शन 1', 'स्मार्टएक्शन 5', 'स्मार्टएक्शन 10']; SmartActionsId.forEach (function (identifier, index) {console.log ("smartActionsId =" + identifier); $ ('#' + स्मार्टएक्शनआईडी [अनुक्रमणिका] + 'चयन')। परिवर्तन (फ़ंक्शन () {var value = $ ( यह) .val (); var disableValue; var ruleIndex = smartActionsId [अनुक्रमणिका] .substr (11); console.log ("smartActionsId =" + स्मार्टएक्शनआईडी [अनुक्रमणिका] + "सूचकांक =" + इंडेक्स); अगर (मान == = '0') {disableValue = true; onRuleToggle (disableValue, ruleIndex)} और यदि (मान === '1') {disableValue = false; onRuleToggle (disableValue, ruleIndex)}})}};
कृपया नोट करें : IE8 और डाउन Array.prototype.forEach ()
।
Comments
Post a Comment