如何扩展jQuery的插件?

我正在为jQuery编写插件。 我有扩展插件的问题。 我编写了插件,例如: http : //docs.jquery.com/Plugins/Authoring 。

请参阅以下示例代码:

(function($){ var i18n = {}; var methods = {}; $.fn.myPlugin = function(options){ //... }; })(jQuery); 

我如何扩展i18n的财产?

我希望能够支持存储在单独文件中的国际化插件设置。 我应该怎么做?

例如:

 // plugin definition $.fn.hilight = function(options) { // Extend our default options with those provided. // Note that the first arg to extend is an empty object - // this is to keep from overriding our "defaults" object. var opts = $.extend({}, $.fn.hilight.defaults, options); // Our plugin implementation code goes here. }; // plugin defaults - added as a property on our plugin function $.fn.hilight.defaults = { foreground: 'red', background: 'yellow' }; 

从这里http://www.learningjquery.com/2007/10/a-plugin-development-pattern 。

这是一个非常好的入门教程

jQuery插件通常会扩展这样的选项:

 var i18nOpts = $.extend({}, i18n, options.i18n); 

文档: http : //docs.jquery.com/Plugins/Authoring#Defaults_and_Options

这发生在插件本身内部。

 (function($){ var i18n = {}; var methods = {}; $.fn.myPlugin = function(options){ var i18nOpts = $.extend({}, i18n, options.i18n); }; })(jQuery); 

i18n只存在于该函数内部,为了扩展它,您现在可以将选项传递给该插件。

 $('#myDiv').myPlugin({ i18n: { option1: "value", option2: "Value2" } }); 

下面是我自己使用的一个方便的模板..

 (function($){ var MyClass = function (element, options){ this.options = $.extend({}, options); this.someFunction = function (){...} //Public members var otherFunction = function(){...} //Private members $(element).data('pluginInstance', this); } $.fn.myPlugin = function(options){ var myClassInstace = new MyClass(this, options); //Do other things with the object. } })(jQuery); 

你可以通过jQuery的$ .extend(objectA,objectB)方法来完成它。 我估计你最好开始学习jquery插件开发。 从基本的hello world教程,如此链接http://www.tectual.com.au/posts/3/How-To-Make-jQuery-Plugin-jQuery-Plugin-Hello-World-.html或查看此post这里https://stackoverflow.com/a/11611732/1539647或