jquery插件开发模式
在这篇文章中,我将向您展示如何使用模块模式创建一个基本的jQuery插件,该插件可以与其他选项一起使用。 模块模式的主要重点是保护您的选项和方法,并提供一个可以在对象上使用的漂亮的公共API。 它通过将Object Literal语法与包含私有和公共对象名称空间的封装变量一起使用来实现此目的。 该插件是一个非常简单的解释示例,下面的演示为您提供了创建健壮的jQuery插件的基础知识。
相关文章:
- 普通英语的jQuery函数名称间隔
- 10种Javascript速记编码技术
You Tube视频插件
该插件的目的是创建不同的youtube视频实例,您可以为其指定标题和网址等选项。
![基本的jQuery插件 basic-jquery-plugin](https://img7.php1.cn/3cdc5/d062/339/b3582dc6322e95b2.jpeg)
让我们看一下代码...
插件中使用了3个主要变量:priv(私有)保存私有API; Plugin(私有)保存公共API; defaults(缺省)保存默认的插件设置。
var priv = {}, // private APIPlugin = {}, // public API// Plugin defaultsdefaults = {id : '',name : '',url : ''};
存储在“默认值”中的默认插件设置将被新设置覆盖。 请记住,$ .extend()函数将一个对象与另一个对象合并,因此此处的选项与默认值合并,新对象存储在priv.options中。
// Public initialization
Plugin.init = function(options)
{...$.extend(priv.options, defaults, options);...
}
在这里,我们可以使用“ this.options”直接在Plugin priv对象上调用这些选项。
priv.options = {}; //private optionspriv.method1 = function()
{console.log('Private method 1 called...');$('#videos').append('
'+this.options.name+'
');priv.method2(this.options);
};
在这里可以实现插件的公共API,因为我们返回了可以访问公共方法的Plugin对象。
// Return the Public API (Plugin) we want to expose
return Plugin;
运行代码,我们可以在Firebug中清楚地看到在对象上设置了选项,并且正确调用了私有/公共方法。
![基本的jQuery插件2 basic-jquery-plugin2](https://img7.php1.cn/3cdc5/d062/339/77b3ddda44ccffbb.jpeg)
演示版
加载YouTube视频
完整插件
/*** A basic jQuery plugin using the Module Pattern* ** @author Sam Deering* @copyright Copyright (c) 2012 jQuery4u* @license http://jquery4u.com/license/* @since Version 1.0**/!function(exports, $, undefined)
{var Plugin = function(){/*-------- PLUGIN VARS ------------------------------------------------------------*/var priv = {}, // private APIPlugin = {}, // public API// Plugin defaultsdefaults = {id : '',name : '',url : ''};/*-------- PRIVATE METHODS --------------------------------------------------------*/priv.options = {}; //private optionspriv.method1 = function(){console.log('Private method 1 called...');$('#videos').append('
'+this.options.name+'
');priv.method2(this.options);};priv.method2 = function(){console.log('Private method 2 called...');$('#'+priv.options.id).append('
'+this.options.url+'
'); // append title$('#'+priv.options.id).append('
翻译自: https://www.sitepoint.com/jquery-plugin-module-pattern/
jquery插件开发模式