我希望問題不是太不明確。目前,我正在嘗試爲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(選項變量)在私人或公共職能。但我離題了。 ...
啊,謝謝,我太困惑了,昨天看不到範圍。其實,我在第一個例子中的結構完全符合你的意思。 – Narretz