दिलचस्प पोस्ट
किसी अन्य गतिविधि को शुरू करने के लिए प्रसंग का उपयोग करें जेपीए और सीतनिद्रा में होना का उपयोग करते समय आईडी पीढ़ी रणनीति का चयन कैसे करें कार्यों का जावास्क्रिप्ट सरणी केन के बाद गेटलाइन का उपयोग करना (cin, s) आप विश्व स्तर पर जैक्सन को वसंत के भीतर अज्ञात संपत्तियों की उपेक्षा करने के लिए कैसे सेट करते हैं? PHP में एकाधिक टर्नरी ऑपरेटरों को ढेर करना PHP का उपयोग कर एक बड़ी फ़ाइल स्ट्रीमिंग मैवेन परियोजना का मुख्य वर्ग चलाने php / mysql ज़िप कोड निकटता खोज अधिक सुरुचिपूर्ण "ps aux | grep -v grep " उदाहरण के साथ जावास्क्रिप्ट मॉड्यूल पैटर्न मैं प्रत्येक आइटम के लिए एक सूचीबैक में अलग टूलटिप पाठ कैसे सेट कर सकता हूं? एआरबी टेम्पलेट्स में एचटीएमएल से बचने को अक्षम करें "इस प्रोफ़ाइल से मेल खाने वाली एक वैध हस्ताक्षर पहचान आपके कुंजीचेन में नहीं मिल सकती" चेतावनी PHP, कैसे शून्य से एक विभाजन पकड़ने के लिए?

प्रतिस्थापन के बाद घटनाक्रम पंजीकरण नहीं है

जब मैं replaceWith करता हूं replaceWith एक डोम से बाहर लाने के लिए एक तत्व के साथ, फिर से 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 । हालांकि, क्लिक हैंडलर अब और नहीं काम करता है (जहां मुझे लगता है कि यह चाहिए)

Solutions Collecting From Web of "प्रतिस्थापन के बाद घटनाक्रम पंजीकरण नहीं है"

क्योंकि जब आप मूल तत्व को बदलते हैं, तो इसे से जुड़ी घटनाएं निकाल दी जाती हैं। replacement.replaceWith(original) लिए कॉल के बाद आपको original पर click ईवेंट हैंडलर को पुनः संलग्न करने की आवश्यकता होगी। replacement.replaceWith(original) :

 $(function() { function replace() { 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); original.click(replace); }); } $('.x').click(replace); }); 

अद्यतनः live() और bind() को bind() पक्ष में छोड़ दिया गया है।

आप लाइव () और बाइंड () ईवेंट का उपयोग कर सकते हैं, यह आपका नया कोड है:

 $(function() { $('.x').live('click', function() { var replacement = $(document.createElement('span')); var original = $(this).replaceWith(replacement); replacement .css('background-color', 'green') .text('replacement for ' + $(this).text()) .bind('click', function() { replacement.replaceWith(original); }); }); }); 

-Live ईवेंट jQuery 1.3 और ऊपरी के साथ काम करता है।

-यदि आप लाइव प्रचार को रोकना चाहते हैं तो मर () फ़ंक्शन।

लाइव इवेंट हैं जो आप के लिए देख रहे हैं