दिलचस्प पोस्ट
मैं MATLAB में केवल एक ही चरण में समान नाम और / या स्ट्रिंग के साथ 100 फाइल कैसे लोड कर सकता हूं? चेतावनी: सीएसआरएफ टोकन प्रामाणिकता रेल को सत्यापित नहीं किया जा सकता Laravel 5 नहीं सीएसएस फ़ाइलों को खोजने उद्देश्य सी में निजी तरीके, Xcode 4.3 में मुझे अब उन्हें अपने कार्यान्वयन फ़ाइल में घोषित करने की आवश्यकता नहीं है? आर में दशमलव स्थानों का प्रारूपण करना एंड्रॉइड कलर एक्सएमएल संसाधन फ़ाइल में वेब रंग बिट्स और मॉड्यूलस ऑपरेटर के स्थान पर R: एक्स, वाई, जेड से एक 3 डी की सतह का प्लॉटिंग JSON वस्तु सूची के माध्यम से लूप एक UIViewController पुश करने के लिए कस्टम एनीमेशन पायथन: अपने ऑपरेटरों को परिभाषित? आईफोन / आईपैड / ओएसएक्स: मेरा आईपी एड्रेस प्रोग्राम कैसे प्राप्त किया जाए? अप्रबंधित DLLs ASP.NET सर्वर पर लोड करने में विफल एंड्रॉइड INSTALL_FAILED_UID_CHANGED कुंजी बाइंडिंग के साथ थ्रेड्स

JQuery.extend और jQuery.fn.extend के बीच अंतर?

मैं jquery प्लगइन वाक्यविन्यास को समझने की कोशिश कर रहा हूँ, क्योंकि मैं दो प्लगइन्स को एक में मर्ज करना चाहता हूं। ब्लिंकर को अंतराल को रोकने या कई बार चलाने में सक्षम होना चाहिए।

वैसे भी, यह वाक्यविन्यास उसी के रूप में है

jQuery.fn.extend({ everyTime: function(interval, label, fn, times) { return this.each(function() { jQuery.timer.add(this, interval, label, fn, times); }); }, oneTime: function(interval, label, fn) { return this.each(function() { jQuery.timer.add(this, interval, label, fn, 1); }); }, 

इस

 $.fn.blink = function(options) { 

क्योंकि यह पहले की तरह दिखता है (बिना) = कई तरीकों को एक बार सेट करने का एक तरीका है। क्या यह सही है? साथ ही जब मैं यहां हूं, तो तत्वों को जोड़ने और जेक्जरी ऑब्जेक्ट के लिए कुछ तर्क क्या होगा?

 jQuery.extend({ timer: { global: [], guid: 1, dataKey: "jQuery.timer", 

(यह टाइमर प्लगइन से है)

धन्यवाद, रिचर्ड

वेब के समाधान से एकत्रित समाधान "JQuery.extend और jQuery.fn.extend के बीच अंतर?"

jQuery.extend को अतिरिक्त कार्यों के साथ किसी भी ऑब्जेक्ट का विस्तार करने के लिए प्रयोग किया जाता है, लेकिन jQuery.fn.extend को jQuery.fn ऑब्जेक्ट का विस्तार करने के लिए उपयोग किया जाता है, जो कि वास्तव में एक जाने में कई प्लगिन फ़ंक्शन जोड़ता है (प्रत्येक फ़ंक्शन को अलग से निर्दिष्ट करने के बजाय)।

jQuery.extend :

 var obj = { x: function() {} } jQuery.extend(obj, { y: function() {} }); // now obj is an object with functions x and y 

jQuery.fn.extend :

 jQuery.fn.extend( { x: function() {}, y: function() {} }); // creates 2 plugin functions (x and y) 
 jQuery.extend({ abc: function(){ alert('abc'); } }); 

उपयोग: $.abc() ( $.ajax() तरह आवश्यक कोई चयनकर्ता नहीं।)

 jQuery.fn.extend({ xyz: function(){ alert('xyz'); } }); 

उपयोग: $('.selector').xyz() ( $('#button').click() तरह आवश्यक चयनकर्ता $('#button').click() ।)

मुख्य रूप से इसे $.fn.each() को लागू करने के लिए उपयोग किया जाता है।

मुझे उम्मीद है यह मदद करेगा।

JQuery.extend और jQuery.fn.extend के बीच अंतर?

दरअसल, उनके बेस संदर्भ के अलावा कोई नहीं है। JQuery स्रोत में , आप पढ़ सकते हैं:

 jQuery.extend = jQuery.fn.extend = function() { … }; 

तो यह कैसे काम करता है? प्रलेखन पढ़ता है:

पहली ऑब्जेक्ट में दो या दो से अधिक ऑब्जेक्ट की सामग्री को एक साथ मिल जाती है।

यह सिर्फ एक फॉर-इन-लूप है, जो गुणों की प्रतियां करती है, नेस्टेड ऑब्जेक्ट्स को पुनर्वितरित करने के लिए झंडे से पंप दिया। और एक अन्य विशेषता:

यदि केवल एक तर्क दिया जाता है तो $.extend() , इसका मतलब है कि लक्ष्य तर्क छोड़ा गया था

  // then the following will happen: target = this; 

इसलिए यदि फ़ंक्शन को jQuery पर स्वयं (बिना स्पष्ट लक्ष्य) कहा जाता है, तो यह jQuery के नेमस्पेस का विस्तार करेगा। और अगर फ़ंक्शन को jQuery.fn पर (स्पष्ट लक्ष्य के बिना) कहा जाता है, तो यह jQuery प्रोटोटाइप ऑब्जेक्ट का विस्तार करेगा जहां सभी (प्लगइन) विधियां स्थित हैं।

इस ब्लॉग पोस्ट में अच्छा वर्णन है:

 $.fn.extend({ myMethod: function(){...} }); //jQuery("div").myMethod(); $.extend({ myMethod2: function(){...} }); //jQuery.myMethod2(); 

उद्धरण:

एक सामान्य नियम के रूप में, आपको फ़ंक्शन के लिए jQuery ऑब्जेक्ट और विधियों के लिए jQuery.fn वस्तु का विस्तार करना चाहिए। एक विधि के विपरीत, फ़ंक्शन, सीधे डोम से पहुंचा नहीं है।

 $.fn.something= function{}; 

jQuery.prototype को इंगित करता है और "इस" के माध्यम से प्रवेश डोमेन तत्वों को देता है। अब आप $(selector).something(); उपयोग कर सकते हैं $(selector).something(); तो यह प्लगइन फ़ंक्शन जैसे $(selector).css();

 $.something = function{}; 

एक वस्तु या फ़ंक्शन को jQuery के ऑब्जेक्ट में जोड़ता है और यू "डो" का उपयोग करने के लिए "इस" का उपयोग नहीं कर सकता अब यू $.something() रूप में इसका इस्तेमाल कर सकते हैं। कुछ $.something() ; यह $.trim() रूप में उपयोगिता फ़ंक्शन के रूप में काम करता है

परंतु

 $.fn.extend({function1(), function2()}) and $.extend({function1(), function2()}) 

एक ही समय में 1 से अधिक फ़ंक्शन जोड़ने की अनुमति देता है। इसके अलावा, इन्हें एक से अधिक ऑब्जेक्ट प्रदान करते हुए दो ऑब्जेक्ट लिटरल्स को मर्ज करने के लिए इस्तेमाल किया जा सकता है।