क्या करता है $ (फ़ंक्शन () {}); करना?


208

कभी-कभी मैं एक फ़ंक्शन बनाता हूं और बाद में फ़ंक्शन को कॉल करता हूं।

उदाहरण:

function example { alert('example'); }
example(); // <-- Then call it later

किसी तरह, कुछ कार्यों को नहीं बुलाया जा सकता है। मुझे उन कार्यों को अंदर बुलाना होगा:

$(function() { });

क्या करें $(function() {});और क्या करें (function() { });, और इनमें से क्या अंतर / उद्देश्य है?

जवाबों:


306
$(function() { ... });

के लिए सिर्फ jQuery का शॉर्ट-हैंड है

$(document).ready(function() { ... });

यह ऐसा करने के लिए डिज़ाइन किया गया है (अन्य बातों के अलावा) यह सुनिश्चित करना है कि पृष्ठ के सभी DOM तत्वों का उपयोग करने के लिए तैयार होने के बाद आपका फ़ंक्शन कहा जाता है।

हालाँकि, मुझे नहीं लगता कि यह समस्या आपके पास है - क्या आप स्पष्ट कर सकते हैं कि 'किसी तरह से आपका क्या मतलब है, कुछ कार्यों को नहीं बुलाया जा सकता है और मुझे उन फ़ंक्शन को अंदर कॉल करना है'? शायद उम्मीद के मुताबिक काम नहीं करने के लिए कुछ कोड पोस्ट करें?

संपादित करें: अपने प्रश्न को फिर से पढ़ना, यह हो सकता है कि पृष्ठ लोड होने से पहले आपका फ़ंक्शन चल रहा है, और इसलिए ठीक से निष्पादित नहीं होगा; इसे $ (फंक्शन) में डालना वास्तव में इसे ठीक करेगा!


2
क्या होगा अगर $ (फ़ंक्शन () {}); पहले से ही $ (दस्तावेज़) में है।
1

फ़ंक्शन $ (फ़ंक्शन) के बिना काम नहीं करता है, हालांकि यह पहले से ही $ (दस्तावेज़ में) तैयार है ()।
jwchang

अच्छा प्रश्न! मेरा मानना ​​है कि यह सिर्फ काम करना चाहिए, क्योंकि jQuery जानता है कि आप सही जगह पर हैं, लेकिन यह निश्चित रूप से बाहरी है; यदि आप अंदर हैं। () आप अपने कार्य को सामान्य कह सकते हैं। यदि यह काम नहीं कर रहा है, तो एक नमूना पोस्ट करें, या इससे भी बेहतर - कोशिश करें और jsfiddle.net के रूप में एक बेला बनाएं।
रस क्लार्क

4
@JeongWooChang ऐसा करो (function () { ... })();। आपको ()अपने फ़ंक्शन को लागू करने के लिए जोड़ना होगा।
48इमे विदेस

3
"अनुभवी डेवलपर्स कभी-कभी शॉर्टहैंड के $()लिए उपयोग करते हैं $( document ).ready()। यदि आप कोड लिख रहे हैं जो कि jQuery के साथ अनुभव नहीं कर रहे लोग देख सकते हैं, तो लंबे फॉर्म का उपयोग करना सबसे अच्छा है।" - learn.jquery.com
thdoan

15

निम्नलिखित एक jQuery फ़ंक्शन कॉल है:

$(...);

जो "jQuery फ़ंक्शन" है। $एक फ़ंक्शन है, और $(...)क्या आप उस फ़ंक्शन को कॉल कर रहे हैं।

आपके द्वारा दिया गया पहला पैरामीटर निम्नलिखित है:

function() {}

पैरामीटर एक फ़ंक्शन है जिसे आपने निर्दिष्ट किया है, और $डीओएम लोडिंग समाप्त होने पर फ़ंक्शन आपूर्ति की गई विधि को कॉल करेगा।


8

यह केवल शॉर्टहैंड है $(document).ready(), जैसे:$(document).ready(function() { YOUR_CODE_HERE }); । कभी-कभी आपको इसका उपयोग करना पड़ता है क्योंकि आपका कार्य डोम फिनिशिंग लोड करने से पहले चल रहा है।

यहाँ सब कुछ समझाया गया है: http://docs.jquery.com/Tutorials:Introducing_$ (दस्तावेज) पहले से ही (!)।


5

मुझे लगता है कि आप जावास्क्रिप्ट को jQuery के तरीकों से भ्रमित कर सकते हैं। वेनिला या सादा जावास्क्रिप्ट कुछ इस तरह है:

function example() {
}

किसी भी समय, कहीं भी उस प्रकृति के एक समारोह को बुलाया जा सकता है।

jQuery (जावास्क्रिप्ट पर निर्मित एक पुस्तकालय) उन कार्यों में बनाया गया है जिन्हें आम तौर पर DOM को पूरी तरह से प्रस्तुत करने से पहले कहा जाता है। जब यह पूरा हो जाए तो वाक्य रचना है:

$(document).ready(function() {
});

तो एक jQuery फ़ंक्शन, जो कि $या उस शब्द के साथ jQueryआमतौर पर उपसर्ग किया जाता है, उस पद्धति के भीतर से कहा जाता है।

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

उस ब्लॉक का छद्म कोड है:

जब दस्तावेज़ ऑब्जेक्ट मॉडल $(document)तैयार हो जाता है .ready(), तो निम्न फ़ंक्शन को कॉल करें function() { }। कि समारोह में, सभी के लिए चेक <li>'पृष्ठ पर है $('li')और सीएसएस संपत्ति "रंग" मान पर सेट करने के लिए jQuery विधि सीएसएस () का उपयोग कर "लाल".css('color', 'red');


2

यह एक शॉर्टकट है $(document).ready(), जिसे तब निष्पादित किया जाता है जब ब्राउज़र ने पृष्ठ लोड करना समाप्त कर दिया है (यहाँ अर्थ है, "जब डोम उपलब्ध है")। Http://www.learningjquery.com/2006/09/introducing-document-ready देखें । यदि आप example()ब्राउज़र को पेज लोड करने से पहले कॉल करने का प्रयास कर रहे हैं , तो यह काम नहीं कर सकता है।


1
"पृष्ठ लोड करना समाप्त हो गया" गलत और भ्रामक है।
येलह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.