निम्नलिखित उदाहरण कोड में, मैं onclick
ईवेंट हैंडलर को "foo" टेक्स्ट वाले स्पैन में संलग्न करता हूं। हैंडलर एक अनाम कार्य है जो एक चेतावनी() को पॉप करता है।क्या वंश के कार्यक्रम श्रोताओं को नष्ट किए बिना आंतरिक HTML में जोड़ना संभव है?
हालांकि, अगर मैं पैरेंट नोड के innerHTML
को असाइन करता हूं, तो यह onclick
ईवेंट हैंडलर नष्ट हो जाता है - "foo" पर क्लिक करके अलर्ट बॉक्स को पॉप अप करने में विफल रहता है।
क्या यह ठीक है?
<html>
<head>
<script type="text/javascript">
function start() {
myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
mydiv = document.getElementById("mydiv");
mydiv.innerHTML += "bar";
}
</script>
</head>
<body onload="start()">
<div id="mydiv" style="border: solid red 2px">
<span id="myspan">foo</span>
</div>
</body>
</html>
यह सवाल 'एक रूप करने के लिए नए क्षेत्रों जोड़कर उपयोगकर्ता इनपुट मिटा देता है' समस्या से संबंधित है। चयनित उत्तर इन दोनों समस्याओं को बहुत अच्छी तरह से ठीक करता है। – MattT