Я только начинаю с написания плагинов 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);
Я мог бы быть далеко отсюда и, возможно, все означают одно и то же. Я смущен. В некоторых случаях кажется , что это не работает в плагине, который я писал с использованием Type 1. Пока что Type 3 кажется мне наиболее элегантным, но я хотел бы знать и о других.
(function($) { })(jQuery)тебе сказали: «Я знаю, что это как-то расширяет jQuery [...]». Очевидно, вы не знаете, так как ваше утверждение на 100% ложно. Кстати, это может ввести в заблуждение будущих читателей. Взгляните на это: stackoverflow.com/a/32550649/1636522 .
(function($) { })(jQuery);оборачивает код так , что$этоjQueryвнутри , что закрытие, даже если$что - то значит еще вне его, как правило , в результате$.noConflict(), например. Это гарантирует, что ваш плагин работает, или нет$ === jQuery:)