समस्या $(document).ready(..)
विधि हल करने का प्रयास कर रही है पृष्ठ के लिए जावास्क्रिप्ट कोड के निष्पादन और उस समय जिस पर पृष्ठ में नियंत्रण बाध्य हैं, के बीच तनाव है। दस्तावेज तैयार होने के बाद ready
फ़ंक्शन आग लग जाएगा और डीओएम तत्व उपलब्ध होंगे इसलिए जावास्क्रिप्ट कोड डीओएम
के बारे में उचित धारणाएं कर सकता है सबसे आम उदाहरण यह है कि डीओएम तत्वों के संबंध में जावास्क्रिप्ट कोड का स्थान यह संचालित करने की कोशिश कर रहा है पर।
<script>
$('#target').click(function() {
alert('It was clicked');
});
</script>
<div id="target">Click Me</div>
इस विशेष उदाहरण में जावास्क्रिप्ट इरादे के अनुसार काम नहीं करेगा। जब स्क्रिप्ट ब्लॉक दर्ज किया जाता है click
लाइन चलाया जाता है और वर्तमान में आईडी target
आईडी के साथ कोई DOM तत्व नहीं है, इसलिए हैंडलर कुछ भी नहीं बांधता है। कोड के साथ वास्तव में कुछ भी गलत नहीं है, डीओएम तत्व बनने से पहले इसे चलाने के लिए दुर्भाग्यपूर्ण समय था।
इस उदाहरण में समस्या स्पष्ट है क्योंकि कोड और डीओएम तत्व को दृष्टि से जोड़ा जाता है। अधिक जटिल वेब पृष्ठों में हालांकि जावास्क्रिप्ट अक्सर पूरी तरह से अलग फ़ाइल में होता है और लोड ऑर्डरिंग के बारे में कोई दृश्य गारंटी नहीं होती है (न ही इसे चाहिए)। $(document).ready(..)
अमूर्तता का उपयोग समस्याओं के संभावित स्रोत के रूप में आदेश देने के प्रश्न को हटा देता है और चिंताओं के उचित पृथक्करण की सुविधा प्रदान करता है
ऐसा लगता है कि किसी ने मुझे 1 9 सेकेंड तक हराया :) – Maess