2011-01-22 15 views
5

मैं अब कुछ समय के लिए JQuery के साथ काम कर रहा हूँ और मैं हमेशा अपने जावास्क्रिप्ट initalise के लिए निम्न का उपयोग किया है:

$(document).ready(function() { 
// Initalisation logic 
}); 

हालांकि, हाल ही मैंने देखा है एक का उपयोग कर उदाहरण के बहुत निम्न:

$(function() { 

}); 

क्या अंतर

धन्यवाद

+0

भयानक तेज़ प्रतिक्रिया के लिए सभी को धन्यवाद !! – Mantisimo

उत्तर

8

असल में, कोई नहीं है। $(...) प्रारूप एक शॉर्टकट है। विवरण के लिए jQuery() के लिए the API docs देखें।

मैं इस तरह इसका उपयोग करना चाहते:

jQuery(function($) { 
    // ...all of my jQuery-specific code here... 
}); 

... क्योंकि तब मैं करने के लिए, मैं noConflict अगर मैं अंत पेज कि भी $ प्रतीक चाहता है में कुछ मिश्रण करने के लिए उपयोग कर सकते हैं की जरूरत है , लेकिन मैं अभी भी अपने कोड में $ का उपयोग कर सकता हूं (क्योंकि jQuery स्वयं को कॉलबैक में पहले तर्क के रूप में पास करता है, और जैसा कि आप देख सकते हैं कि मैं अपने कॉलबैक फ़ंक्शन   — में उस तर्क को $ के रूप में स्वीकार कर रहा हूं और इसलिए कोई भी वैश्विक $ प्रतीक छाया कि एक और पुस्तकालय का उपयोग हो सकता है)। उपर्युक्त का भी लाभ है कि मेरे पास पर कोड (var अज्ञात फ़ंक्शन के भीतर) वैश्विक रूप से प्रतीक हो सकते हैं जो वास्तव में ग्लोबल्स नहीं हैं।

+0

आप उस पृष्ठ में कितनी बार मिश्रण करते हैं जो $ प्रतीक चाहता है? मैं सिर्फ उत्सुक हूं क्योंकि ऐसा अक्सर नहीं होता है जहां मैं काम करता हूं। – finneycanhelp

+0

@finneycanhelp: अक्सर नहीं, मैं कई पुस्तकालयों को एक साथ मिश्रण से बचने की कोशिश करता हूं। लेकिन उदाहरण के लिए, यदि धीरे-धीरे jQuery से प्रोटोटाइप (या म्यूटूल) या उनसे jQuery तक साइट को माइग्रेट करना है, तो 'नो कॉन्फ्लिक्ट' महत्वपूर्ण है, क्योंकि प्रोटोटाइप और म्यूटूल भी' $ 'प्रतीक पर निर्भर करते हैं और भरोसा करते हैं। –

+0

ज़रूर! रूबी ऑन रेल और प्रोटोटाइप दिमाग में आते हैं। :) – finneycanhelp

2

अंतर शैली का विषय है। एक दूसरे का शॉर्टकट है। :) नीचे जहां लिखा है कि निकट http://api.jquery.com/jQuery/ देखें "समारोह पर क्रियान्वित होती डोम इस्तेमाल किया जा करने के लिए तैयार है"

जब मैं jQuery यूआई लोगों में से एक पूछा कि वे क्या पसंद करते हैं, उन्होंने कहा कि वह अधिक वर्बोज़ तरह से पसंद किया। हालांकि, मेरी दुकान में लोग इस संस्करण का उपयोग करते हैं:

$(function() { 

}); 
1

अंतर यह है कि पहला अधिक पठनीय है। तो कृपया इसे इस्तेमाल करें।

$(document).ready(function() { 
// Initalisation logic 
}); 
+0

सहमत हैं कि '$ (दस्तावेज़) .ready (function() {...})' '$ (function() {...}) से अधिक पठनीय है, लेकिन मुझे लगता है 'jQuery (फ़ंक्शन ($) {...}); 'पूरी तरह से पठनीय है। किसी भी मुहावरे की तरह, आपको इसे एक बार सीखना होगा। –

+1

मैं नहीं करता, आप jQuery पर एक फ़ंक्शन पास कर रहे हैं, लेकिन इसमें कोई संकेत नहीं है कि jQuery उस फ़ंक्शन के साथ करने जा रहा है। – orlp

+0

जैसा मैंने कहा, किसी भी मुहावरे की तरह, आपको इसे एक बार सीखना होगा।अब, यदि आप (मेरे जैसे) सोचते हैं कि 'jQuery' फ़ंक्शन में ** रास्ता ** बहुत अधिक * पूरी तरह अलग है * जो कुछ भी आप पास करते हैं उसके आधार पर करता है (जब आप तारों में गुजरते हैं तो अलग-अलग चीजें भी करते हैं, स्ट्रिंग की सामग्री), कोई तर्क नहीं है, यह jQuery के बारे में मेरे पालतू शिखर में से एक है। लेकिन कम से कम यह केवल * एक * चीज है जब आप स्वयं एक फ़ंक्शन में पास करते हैं। –

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