質問があまりにも非特異的ではないことを願っています。現時点では、私はjQuery用のプラグインを作成しようとしていますが、私はそれを構造化するさまざまな方法と闘っています。私はbxSliderを見つけました、そして、これがプラグインコードのためにかなりアクセス可能であると思った。ここに簡単な例があります:このjQueryプラグインを使用すると(私ではない)良いコーディング方法が得られますか?
(function($){
$.fn.letSlider = function(options){
var defaults = {
speed: 500,
onBeforeSlide: function(){} //Callback
}
var options = $.extend(defaults, options);
//cache base element
base = this;
//public functions
this.init = function(){
text = giveText();
alert(text + ' ' + options.speed);
};
//private functions
function giveText(){
return 'blubb';
};
this.each(function(){
// make sure the element has children
if($(this).children().length > 0){
base.init();
}
});
return this;
}
})(jQuery);
私は理解することができる明確な構造を持っています。しかし、それは私が今までアドバイスしてきたすべてのプラグインの構造とはかなり違っているように見えます。それでも、私は必要なものすべてを公開しています。オプション、コールバック、プライベートおよびパブリック関数です。そしてそれによって、それは連鎖可能でなければなりません。私がすでに気づいたことの一つは、基本的にすべてが最初の$ .fn.bxSlider = function(options){...であり、これまでに見たことがないことです。
他のプラグインの構造については、あまりに複雑すぎて(私には恥じらいます)、または実装に失敗しています。たとえば、http://www.learningjquery.com/2007/10/a-plugin-development-patternで私はopts(options変数)をプライベート関数またはパブリック関数で利用できませんでした。しかし、私は逃げる。 ...
ああ、ありがとう、私はあまりにも範囲を昨日見て混乱していた。実際、最初の例で示した構造は、まさにあなたが意味することです。 – Narretz