2011-04-22 22 views
10

निम्न jQuery स्निपेट के समान परिणाम समान हैं?jQuery दस्तावेज़ तैयार फ़ंक्शन

स्निपेट 1:

$(function() { alert('test!'); }); 

स्निपेट 2:

$(document).ready(function() { alert('test!'); }); 

दूसरे शब्दों में, $(function(){}) सिर्फ $(document).ready(function() { }); के लिए आशुलिपि है?

कारण मैं पूछ रहा हूं क्योंकि हम एक छोटे से एप्लिकेशन के साथ कुछ अजीब मुद्दों को देख रहे हैं जिन्हें हमने jQuery और jQuery UI का उपयोग करके बनाया है। कभी-कभी, जब कोई फॉर्म निष्पादित करता है तो बटन पर क्लिक करके कार्रवाई सबमिट करें ब्राउज़र विंडो बस स्थिर हो जाएगी। हम अभी भी अंतर्निहित ब्राउज़र विंडो (जो पॉप-अप लॉन्च करता है) का उपयोग कर सकते हैं जब तक कि हम वहां कुछ क्रियाएं नहीं करते। उपयोगकर्ता केवल ब्राउज़र को बंद कर सकते हैं (इंटरनेट एक्सप्लोरर, जाहिर है)। हमें संदेह है कि यह एक्रोबैट पीडीएफ प्लग-इन से संबंधित है, लेकिन मैं सिर्फ सभी कोणों की जांच कर रहा हूं, क्योंकि मुझे this issue मिला जो समान व्यवहार प्रदर्शित करता प्रतीत होता है।

+5

हाँ वे बराबर कर रहे हैं। संदर्भ के लिए यह लिंक देखें http://api.jquery.com/ready/ – dmarucco

+1

@ डमारुको, यह एक उत्तर होना चाहिए। –

+0

@dmarucco: यदि आप इसे उत्तर के रूप में जोड़ते हैं, तो मैं इसे स्वीकार करूंगा। – tmbrggmn

उत्तर

5

हां वे बराबर हैं। निम्नलिखित कोड भी

$(document).ready(function(){ 
    alert("success"); 
}); 

या

$(function(){ 
    alert("succes"); 
}); 
9

सभी निम्नलिखित वाक्यविन्यास के तीन बराबर हैं:

$(document).ready(handler) 
$().ready(handler) (this is not recommended) 
$(handler) 

एक और JavaScript लाइब्रेरी का उपयोग करते समय jQuery नाम स्थान

अलियासिंग, हम $ .noConflict() कॉल करने के लिए नाम स्थान कठिनाइयों से बचने के लिए कर सकते हैं। जब इस फ़ंक्शन को कॉल किया जाता है, तो $ शॉर्टकट अब उपलब्ध नहीं होता है, हर बार जब हम सामान्य रूप से $ लिखते हैं तो हमें jQuery लिखने के लिए मजबूर किया जाता है। हालांकि, हैंडलर .ready() विधि को पास कर सकता है एक तर्क ले सकता है, जो वैश्विक jQuery ऑब्जेक्ट को पारित कर दिया गया है। इसका मतलब यह है कि हम अन्य कोड को प्रभावित किए बिना हमारे .ready() हैंडलर के संदर्भ में वस्तु का नाम बदल सकते:

jQuery(document).ready(function($) { 
    // Code using $ as usual goes here. 
}); 
3

$(function(){}) और $(document).ready(function() { }) समान हैं।

3

हां, यह समान है। लेकिन सबसे पहले आमतौर पर आसानी के लिए jquery में प्रयोग किया जाता है।

$(function() { 
    alert('test!'); 
}); 
1

लिए यह लिंक देखें हाँ:

$(document).ready(function() { 
    /* code */ 
}); 

... और:

$(function() { 
    /* code */ 
}); 

... प्रभावी रूप से वही हैं, और बाद वाले को आमतौर पर पूर्व के लिए शॉर्टेंड कहा जाता है।और उसके अनुमति आदानों -

आप सोच रहे हैं कि क्यों वे एक ही परिणाम का उत्पादन, यह jQuery निर्माता -इस jQuery() समारोह, के रूप में $() एलियास से कोई लेना देना नहीं है।

निर्माता को api.jquery.com/jquery/ पर दस्तावेज किया गया है, और इसके दो प्रासंगिक विकल्प नीचे उल्लिखित हैं।


jQuery(selector [, context ])

एक स्ट्रिंग एक CSS चयनकर्ता जो तब तत्वों का एक सेट से मिलान करने के लिए किया जाता है युक्त स्वीकार करता है।

एक jQuery ऑब्जेक्ट देता है।

यह ऊपर विकल्प कैसे आप jQuery निर्माता लागू कर रहे हैं जब लेखन है:

$(document).ready(function() { /* code */ }); 

document ऑब्जेक्ट चयनित है और एक jQuery object के निर्माण के लिए प्रयोग किया जाता है। जब डोम पूरी तरह से लोड हो जाता है, तो वह jQuery ऑब्जेक्ट ready() के भीतर कॉलबैक (अनाम कार्य) को आमंत्रित करता है।


jQuery(callback)

एक समारोह बांधता है डोम लोड हो जाए, निष्पादित किया जाना है।

एक jQuery ऑब्जेक्ट देता है।

$(function() { /* code */ }); 

कॉलबैक फ़ंक्शन (अनाम समारोह) एक jQuery वस्तु के निर्माण के लिए प्रयोग किया जाता है, और जब डोम पूरी तरह से है:

ऊपर यह विकल्प है कि कैसे आप jQuery निर्माता लागू कर रहे हैं जब लेखन है भारित, यह आह्वान किया जाता है।

संबंधित मुद्दे