私はjQueryプラグインの作成から始めています。私は3つの小さなプラグインを作成しましたが、実際にはそれが何を意味するのかわからずに、すべてのプラグインに行をコピーしています。誰かがこれらについてもう少し教えてもらえますか?おそらく、フレームワークを作成するときに説明が役立つと思います:)
これは何をしますか?(私はそれが何らかの形でjQueryを拡張していることを知っていますが、これについて知っておくべき他に興味深いものがあります)
(function($) {
})(jQuery);
プラグインを作成する次の2つの方法の違いは何ですか?
タイプ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
:)