javascript - jquery click event does not work when content is overwritten using ajax -


मैंने इस कोड के नीचे की समस्या समझाई है

  & lt; div id = 'content' & gt; & Lt; div id = 'help' & gt; ब्लाह ब्ला ब्ला एक बार एक मिडस ब्ला ब्ला ब्ला नाम के राजा रहते थे; / div & gt; & LT; स्क्रिप्ट & gt; $ (Document) .ready (function () {$ ('# help') क्लिक करें (फ़ंक्शन () {$ ('help')। Hide (500);})}) & lt; / script & gt; & Lt;! - लंबे समय तक अन्य सामग्री के बाद पृष्ठ के नीचे - & gt; & Lt; / div & gt; & Lt;! - div id = सामग्री का अंत - & gt; & LT; स्क्रिप्ट & gt; फ़ंक्शन ऑनडेलेट () {// एक एजेक्स अनुरोध कर रहा है कि किसी आइटम को गतिशील रूप से अपडेट करने के लिए कुछ आइटम हटाने के बाद। // परिणाम भी उस मदद विभाग के साथ डिव कोड से ऊपर होगा। Document.getElementById ('content')। InnerHTML = xmlHTTP.responseText} & lt; / script & gt;  

एक ऐसी डिवाइन के भीतर एक सामग्री का हिस्सा होता है जिसमें 'आईटी' के रूप में 'कंटेंट' है I में एक सहायता डिवा है I कौन सा डिस्प्ले है: कोई नहीं bydefault और अगर उपयोगकर्ता सहायता बटन पर क्लिक करता है तो मैं

  $ ('# help') पर क्लिक करता हूं। शो (500);  

और जब उपयोगकर्ता एक ही मदद बटन पर क्लिक करता है या यदि उपयोगकर्ता मदद डिवेल पर क्लिक करता है तो मैं उस कोड को $ div ($ # help) छुपाता हूं। Hide (500)

यह अच्छी तरह से काम कर रहा है जब तक कि मैं div id = 'content' की सामग्री को अद्यतन करने के लिए एक एजेक्स अनुरोध करता हूं मैं समान सामग्री के साथ एक ही सहायता डिवा को ओवरराइट कर रहा हूँ ऐसा है जैसे मैं शीर्ष लेख और पाद लेख को छोड़कर संपूर्ण सामग्री क्षेत्र को ओवरराइट कर रहा हूं।

लेकिन प्रतिक्रिया टेक्स्ट के साथ अद्यतन करने के बाद उस दस्तावेज़ के अंदर कोड के शीर्ष पर क्लिक ईवेंट। जहां onclick उस div पर काम कर रहा है

मेरा मतलब अच्छी तरह से काम कर रहा है उस क्लिक के बिना और उस पर दस्तावेज़ तैयार कोड के साथ यह काम नहीं कर रहा है जब एजेक्स से ओवरराइट किया जाता है।

स्क्रिप्ट SR टैग और स्क्रिप्ट टैग के साथ एक कोड गतिशील रूप से प्राप्त किए जाते हैं, तो जावास्क्रिप्ट कोड या लिंक्स काम नहीं कर रहा है

और सभी से ऊपर

     

जब AJAX से ओवरराइट होता है, तो आप फिर से $ (# 'सहायता') सेट करते हैं। क्लिक = .... कोड यह काम करता है जैसे फ़ंक्शन ondelete () {document.getElementById ('सामग्री')। InnerHTML = xmlHTTP.responseText $ ('# help')। क्लिक करें (फ़ंक्शन () {$ ('# help')। Hide (500);}); }

ऐसा लगता है कि आपको एजेक्स का उपयोग करते समय इसे अपडेट करते समय सभी संलग्न घटनाओं को अपडेट करना होगा।

कृपया इस पर काबू पाने के लिए अपनी टिप्पणियों और सुझावों को दें।

प्रयोग करने का प्रयास करें।

  $ (document) .ready (function () {$ ('# Help')। लाइव ('क्लिक', फ़ंक्शन () {$ (this) .hide (500);});}); संस्करण 1.9 के रूप में, .live () को बहिष्कृत कर दिया गया है।  

.live (eventType, हैंडलर)

< P> तब आप उपयोग कर सकते हैं

सभी तत्वों के लिए घटना में हैंडलर संलग्न करें जो वर्तमान चयनकर्ता से मेल खाते हैं, भविष्य में या भविष्य में।

< / html>

Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -