दिलचस्प पोस्ट
क्या मैं दूसरी फ़ाइल से चर का उपयोग कर सकता हूं? PHP में कॉलिंग फ़ंक्शन / विधि का नाम कैसे प्राप्त करें? PHP रूट निर्देशिका में एक txt फ़ाइल बनाएँ और सहेजें MySQL क्वेरी ग्रुप द्वारा दिन / महीना / वर्ष कैसे gwt में कैश को साफ करने के लिए? मैं नए C # class / इंटरफ़ेस के लिए विजुअल स्टूडियो टेम्पलेट कैसे संपादित करूं? Ggplot में एक पूर्व परिभाषित रंग पैलेट का उपयोग करना JavaScript में डोम डेटा बाइंडिंग को कैसे कार्यान्वित करें कक्षा के लिए सीएसएस 3 एनटी प्रकार प्रतिबंधित पेरेंट कंटेनर की ऊंचाई के प्रतिशत के रूप में मार्जिन या पैडिंग को कैसे सेट करें? EL का उपयोग कर सूची या सरणी में विशिष्ट तत्व प्राप्त करें रिलेशनल डेटाबेस डिजाइन कई उपयोगकर्ता प्रकार एक स्ट्रिंग में एक विशिष्ट सूचकांक में एक चरित्र को बदलें? String.split पाइप सीमांकक को बचने की आवश्यकता क्यों है? पायथन में वैकल्पिक कर्ल

jQuery .add () / .ajax () संलग्न HTML में जावास्क्रिप्ट क्रियान्वित नहीं करने के बाद

मैंने कुछ HTML प्राप्त करने के लिए .load() और $.ajax का उपयोग करने की कोशिश की है, जिसे किसी कंटेनर में जोड़ा जाना चाहिए, लेकिन लौटा हुआ HTML के भीतर जावास्क्रिप्ट क्रियान्वित नहीं किया जा रहा है, जब मैं इसे किसी तत्व से जोड़ता हूं

.load() का उपयोग करना:

 $('#new_content').load(url+' #content > *',function() { alert('returned'); }); 

मैंने भी $। एजेक्स कॉल करने की कोशिश की है। मैंने फिर से लौटा हुआ HTML से स्क्रिप्ट को निकाला, जिसके बाद मैंने उसे कंटेनर में जोड़ा, लेकिन एक ही समस्या, जेएस को निष्पादित नहीं किया जा रहा है या यहां तक ​​कि इस मामले में संलग्न नहीं है, और जैसा कि मैं समझता हूं, एक <script> को जोड़ने की कोशिश कर रहा हूं इस तरह एक DOM तत्व पर frowned है?

$.ajax का उपयोग करना:

 $.ajax({ url: url }).done(function(response) { var source = $("<div>").html(response).find('#overview_script').html(); var content = $("<div>").html(response).find('#content').html(); $('#new_content').html(content); $('<script>').appendTo('#new_content').text(source).html(); }); 

आदर्श रूप से मैं कॉलबैक में इस जावास्क्रिप्ट को चलाने के बाद HTML को जोड़ता हूं, लेकिन वैर को उन मानों पर सेट किया जा रहा है जो एक नियंत्रक से वापस आते हैं।

तो संक्षेप में, मैं कुछ एचटीएमएल प्राप्त करने की कोशिश कर रहा हूं जिसमें जेएस शामिल होता है, जिसे एचटीएमएल के बाद चलाया जाना चाहिए, लेकिन मेरे पास कोई भाग्य नहीं है। .load() या $.ajax() लौटे हुए HTML में स्क्रिप्ट के रूप में या तो इसे जोड़ने पर गायब हो जाता है, या यह बिल्कुल भी निष्पादित नहीं करता है।

वेब के समाधान से एकत्रित समाधान "jQuery .add () / .ajax () संलग्न HTML में जावास्क्रिप्ट क्रियान्वित नहीं करने के बाद"

जब एक टुकड़ा चयनकर्ता के साथ load() का प्रयोग किया जाता है तो टुकड़ा जोड़ा जाने से पहले स्क्रिप्ट तत्व छीन लिया जाएगा, इस प्रकार स्क्रिप्ट को निष्पादित नहीं किया जाएगा ।

जब एक suffixed selector अभिव्यक्ति के बिना एक यूआरएल का उपयोग कर .load () को कॉल किया जाता है, तो सामग्री को हटाया जाने से पहले .html () को पारित किया जाता है। यह स्क्रिप्ट ब्लॉकों को निष्कासित होने से पहले निष्पादित करता है। यदि .load () को यूआरएल से जुड़ी एक चयनकर्ता अभिव्यक्ति के साथ बुलाया जाता है, हालांकि, एसओएम को अद्यतन करने से पहले लिपियों को छीन लिया जाता है, और इस प्रकार निष्पादित नहीं किया जाता है। दोनों मामलों का एक उदाहरण नीचे देखा जा सकता है:

इसलिए कोशिश करें

 $.get('partial.html', function(result){ $result = $(result); $result.find('#content').appendTo('#new_content'); $result.find('script').appendTo('#new_content'); }, 'html'); 

डेमो: बेलाल

यदि आप जानते हैं कि स्क्रिप्ट क्या है जिसे आप निष्पादित करना चाहते हैं, तो आप अजैक्स प्रतिक्रिया से कहीं और स्क्रिप्ट को परिभाषित कर सकते हैं, और फिर उसे कॉलबैक से कॉल कर सकते हैं। इसके बजाय:

 $('#new_content').load(url+' #content > *',function() {alert('returned');}); 

आप उपयोग कर सकते हैं

 $('#new_content').load(url+' #content > *',function() {my_function(my_param);}); 

इस कोड के बारे में,

 $('#new_content').append($('<script>').html(source)); 

या आप बस अपनी जावास्क्रिप्ट सामग्री को अलग करने के लिए फ़ाइल को अलग कर सकते हैं और इसे लोड करके उपयोग कर सकते हैं

 $.getScript("url to js file"); 

या बस का उपयोग करें,

 eval(source);