Ben sadece jQuery eklentileri yazma ile başlıyorum. Üç küçük eklenti yazdım ama aslında ne anlama geldiğini bilmeden satırı tüm eklentilerime kopyaladım. Birisi bana bunlardan biraz daha bahsedebilir mi? Belki bir çerçeve yazarken bir açıklama işe yarayacaktır :)
Bu ne yapar? (Bir şekilde jQuery'yi genişlettiğini biliyorum ama bu konuda bilmek ilginç başka bir şey var mı)
(function($) {
})(jQuery);
Bir eklenti yazmanın aşağıdaki iki yolu arasındaki fark nedir:
Tip 1:
(function($) {
$.fn.jPluginName = {
},
$.fn.jPluginName.defaults = {
}
})(jQuery);
Tip 2:
(function($) {
$.jPluginName = {
}
})(jQuery);
Tip 3:
(function($){
//Attach this new method to jQuery
$.fn.extend({
var defaults = {
}
var options = $.extend(defaults, options);
//This is where you write your plugin's name
pluginname: function() {
//Iterate over the current set of matched elements
return this.each(function() {
//code to be inserted here
});
}
});
})(jQuery);
Buradan gidebilirim ve belki de hepsi aynı şey demek olabilir. Kafam karıştı. Bazı durumlarda, bu , Tip 1'i kullanarak yazdığım bir eklentide çalışmıyor gibi görünüyor. Şimdiye kadar, Tip 3 benim için en zarif görünüyor, ancak diğerleri hakkında da bilmek istiyorum.
(function($) { })(jQuery)
şunları dile getirdi: "Ben bir şekilde jQuery uzanır biliyorum [...]". Açıkçası do not ifadelerinizin% 100 yanlıştır çünkü biliyoruz. Bu arada gelecekteki okuyucular için yanıltıcı olabilir. Şuna bir göz atın: stackoverflow.com/a/32550649/1636522 .
(function($) { })(jQuery);
, böylece kod sarar$
olanjQuery
bu kapatma içinde bile$
genellikle sonucunda, bunun aracı başka bir şey dışında$.noConflict()
örneğin. Bu, eklentinizin çalışıp çalışmamasını sağlar$ === jQuery
:)