जब मैं replaceWith
डोम से बाहर लाने के लिए एक तत्व, तो replaceWith
इसे वापस लेता है, इसमें पंजीकृत घटनाएं आग नहीं होती हैं। मुझे बरकरार रहने के लिए घटनाओं की आवश्यकता है।घटनाओं के बाद पंजीकरण नहीं कर रहा है
var replacement = $(document.createElement('span'));
var original = $(this).replaceWith(replacement);
replacement
.css('background-color', 'green')
.text('replacement for ' + $(this).text())
.click(function() {
replacement.replaceWith(original);
});
डेमो में, जब आप एक तत्व पर क्लिक करें, यह replaceWith
का उपयोग कर एक और तत्व साथ बदल दिया है:
यहाँ मेरी जावास्क्रिप्ट है। जब आप नए तत्व पर क्लिक करते हैं, तो इसे replaceWith
का उपयोग करके मूल तत्व के साथ प्रतिस्थापित किया जाता है। हालांकि, क्लिक हैंडलर अब और काम नहीं करता है (जहां मुझे लगता है कि यह चाहिए)।
क्या आपने ईवेंट रीटैचमेंट का उपयोग करके समाप्त किया था, या क्या आप कभी भी लाइव इवेंट्स काम करने में सक्षम थे? मैं वही काम कर रहा हूं, और आपके अनुभव से सीखना अच्छा लगेगा। –
@ एरिक टी, मुझे खेद है, लेकिन मैं ईमानदारी से याद नहीं कर सकता। मैंने लगभग दो साल पहले इस सवाल से पूछा था। मुझे लगता है कि '$ .fn.live' का उपयोग नहीं किया गया क्योंकि मैं वास्तविक तत्वों से निपट रहा था, चयनकर्ता नहीं। ('$ .fn.delegate' (जो तब अस्तित्व में नहीं था) आपके लिए 'लाइव' विकल्प के रूप में काम कर सकता है।) मेरे द्वारा चुने गए उत्तर के कारण, मुझे लगता है कि मैंने इवेंट हैंडलर को दोबारा जोड़ दिया है। आप तत्व को गहराई से क्लोन करने का प्रयास कर सकते हैं (जो आईआईआरसी नवीनतम jQuery में इवेंट हैंडलर रख सकता है)। – strager