jQuery UI 1.9+ में, एक विजेट को विस्तारित करना एक नया विजेट बनाने के समान ही किया जाता है।
प्रारंभिक बिंदु के रूप आधार विजेट ($.Widget
) का उपयोग कर एक नया विजेट बनाना::
$.widget("ns.widget", { ... })
एक नया विजेट है कि एक मौजूदा विजेट से विरासत बनाना विजेट कारखाने ($.widget()
) कुछ परिदृश्यों का समर्थन करता है एक विजेट
$.widget("ns.widget", $.ns.existingWidget, { ... })
विस्तार:
+०१२३५१६४१०६१
$.widget("ns.widget", $.ns.widget, { ... })
आप देखेंगे कि विस्तारित वाक्यविन्यास और विरासत वाक्यविन्यास समान हैं। विजेट फैक्ट्री यह ध्यान देने योग्य है कि आप जिस विजेट को बना रहे हैं और जिस विजेट से आप विरासत में हैं, वह वही है और इसे उचित तरीके से संभाल लें।
जब विजेट को विरासत या विस्तारित किया जाता है, तो आपको केवल यह परिभाषित करने की आवश्यकता होती है कि आप क्या बदलना चाहते हैं या जोड़ना चाहते हैं। आधार विजेट पर मौजूद कुछ नई विधियां भी हैं जो विरासत और संदर्भ बदलने वाले तरीकों के साथ काम करना आसान बनाती हैं। विधियों और उनके विवरणों की पूरी सूची के लिए jQuery.Widget documentation पढ़ें। यदि आप विजेट बढ़ा रहे हैं तो आप निश्चित रूप से _super() पढ़ना चाहेंगे।
यहाँ एक उदाहरण है कि 500
करने के लिए डिफ़ॉल्ट delay
विकल्प को बदलने और एक नया विकल्प prefix
जो सभी सुझावों को जोड़ा जाता है जोड़ेंगे:
$.widget("ui.autocomplete", $.ui.autocomplete, {
options: {
delay: 500,
prefix: ""
},
_renderItem: function(ul, item) {
var label = item.label;
if (this.options.prefix) {
label = this.options.prefix + " " + label;
}
return $("<li>")
.append($("<a>").text(label))
.appendTo(ul);
},
});
स्रोत
2012-12-07 12:51:38
"विस्तार" परिभाषित करें। आप जो करना चाहते हैं उसके आधार पर, आप आमतौर पर नई विधियों को जोड़ते हैं और फिर अपनी अतिरिक्त कार्यक्षमता का उपयोग करने के लिए कुछ मौजूदा तरीकों को ओवरराइड करते हैं। जैसा कि [स्वतः पूर्ण उच्चारण फोल्डिंग एक्सटेंशन] (https://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.accentFolding.js)। स्वच्छ और भविष्य के सबूत के तरीके में बहुत कुछ नहीं है। –
मुझे लगता है कि कोई भी जवाब प्रदान कर सकता है कि आपको इसे सावधानी से करना है। आपको कोडबेस से परिचित होना होगा, और फिर सुनिश्चित करें कि आप एक-दूसरे के साथ अनुबंध अनुबंधों को बनाए रखें। – thatidiotguy
@ फैब्रिसियो मैट - आपका क्या मतलब है "साफ और भविष्य के सबूत के तरीके में बहुत कुछ नहीं है"? – user12882