Я тільки починаю писати плагіни jQuery. Я написав три маленькі плагіни, але просто копіював рядок у всі свої плагіни, не знаючи, що це означає. Може хтось розповість мені трохи більше про це? Можливо, пояснення стане в нагоді колись під час написання рамки :)
Що це робить? (Я знаю, що він якось розширює jQuery, але чи є ще щось цікаве про це знати)
(function($) {
})(jQuery);
Яка різниця між наступними двома способами написання плагіна:
Тип 1:
(function($) {
$.fn.jPluginName = {
},
$.fn.jPluginName.defaults = {
}
})(jQuery);
Тип 2:
(function($) {
$.jPluginName = {
}
})(jQuery);
Тип 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);
Я міг би бути тут, і, можливо, все означало те саме. Я збентежений. У деяких випадках це , здається, не працює в плагіні, який я писав за допомогою типу 1. Поки що тип 3 мені здається найелегантнішим, але я хотів би дізнатися і про інших.
(function($) { })(jQuery)вас ви сказали: "Я знаю, що він якось розширює jQuery [...]". Зрозуміло, ви цього не знаєте, оскільки ваше твердження є 100% помилковим. До речі, це може ввести в оману для майбутніх читачів. Погляньте на це: stackoverflow.com/a/32550649/1636522 .
(function($) { })(jQuery);загортайте код так, що$знаходитьсяjQueryвсередині цього закриття, навіть якщо це$означає щось інше поза ним, як правило, як результат$.noConflict(). Це гарантує, що ваш плагін працює, чи ні$ === jQuery:)