javascript - why the blur() can't work? -


  & lt; html xmlns = "http://www.w3.org/1999/xhtml" & gt; & Lt; शीर्ष & gt; & Lt; मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; वर्णसेट = यूटीएफ -8" / & gt; & Lt; title & gt; परीक्षण & lt; / title & gt; & Lt; script type = "text / javascript" src = "js / jquery.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" & gt; $ ('# लक्ष्य')। धुंधला (कार्य () {सतर्क ('स्वागत, लड़का');}) & lt; / script & gt; & Lt; / head & gt; & LT; बॉडी & gt; & LT; प्रपत्र & gt; & Lt; input id = "target" type = "text" value = "फ़ील्ड 1" / & gt; & Lt; इनपुट प्रकार = "टेक्स्ट" मान = "फ़ील्ड 2" / & gt; & Lt; / प्रपत्र & gt; & Lt; div id = "अन्य" & gt; हेन्डलर ट्रिगर करें & lt; / div & gt; & Lt; / body & gt; & Lt; / html & gt;   

jquery.js मेरी जेएस फ़ाइल में है, मैं उपरोक्त कोड test.html नामक फ़ाइल में डाल दिया। जब मैं पहली इनपुट टेक्स्ट बॉक्स पर क्लिक करता हूं तो दूसरे स्थान पर क्लिक करें कोई पॉपअप एक चेतावनी बॉक्स नहीं है?

ब्राउजर इसे HTML में पढ़ता है, इससे पहले कि यह शरीर को देखता है। जब स्क्रिप्ट चलता है, तो #target तत्व अभी तक मौजूद नहीं है।

एक समाधान स्क्रिप्ट को & lt; body & gt; । एक अन्य jQuery के DOM तैयार फ़ंक्शन का उपयोग करना होगा:

  $ (फ़ंक्शन () {$ ('# target')। धुंधला (फ़ंक्शन () {अलर्ट ('स्वागत, लड़का।'); });});   

उस स्थिति में, आप अभी भी सिर पर स्क्रिप्ट डाल सकते हैं, और स्क्रिप्ट ही चलेंगे। हालांकि, यह भाग को $ (function () {/ * code here} /} wrapper के अंदर चलाना बंद कर देगा जब तक कि ब्राउज़र ने सभी HTML नहीं पढ़ा और DOM का अपना अच्छा पेड़ बनाया है तत्व।

Comments