दिलचस्प पोस्ट
दृश्य स्टूडियो 2013 में एक समाधान फ़ाइल (एसएलएन) को कैसे खोलने के लिए मजबूर किया जाए? कैसे Django के माध्यम से ईमेल भेजने के लिए? "जीआईटी चेकआउट <filename>" और "जीआईटी चेकआउट – – <filename>" के बीच अंतर एक यूडब्ल्यूपी परियोजना में ट्रिगर तत्व (एक्सएएमएल) समर्थित नहीं है पृष्ठभूमि छवि प्लेसमेंट एक प्रोग्राम को अपने मानक आउटपुट को फ़्लश करने के लिए मजबूर करते हुए पुनः निर्देशित किया गया JQuery में एक मोबाइल डिवाइस का पता लगाने का सबसे अच्छा तरीका क्या है? वस्तुओं के लिए array_unique? ए से बी ] कन्वर्ट करने के लिए कैसे करें ए और बी मॉडेड हैं? Jquery $ .JAX क्रॉस डोमेन कॉल पर IE में विफल रहता है क्या स्क्लाईट में स्तंभ नामों की सूची प्राप्त करने का कोई तरीका है? कमांड प्रॉम्प्ट में सी # स्रोत फ़ाइल को संकलित करना / निष्पादित करना ईएफ 6 ट्यूटोरियल एसाईक्रोनस कॉल का उपयोग क्यों करता है? क्या मॉलोक कार्यान्वयन सिस्टम को फ्री-एड मेमोरी वापस देगा? पायथन की 'इन' ऑपरेटर ओवरराइड?

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", 

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

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

Solutions Collecting From Web of "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 से अधिक फ़ंक्शन जोड़ने की अनुमति देता है। इसके अलावा, इन्हें एक से अधिक ऑब्जेक्ट प्रदान करते हुए दो ऑब्जेक्ट लिटरल्स को मर्ज करने के लिए इस्तेमाल किया जा सकता है।