[b]是什么?[/b]
所谓“插件”,就是用户自己新增的jQuery实例对象的方法。
[b]原理[/b]:
jQuery插件是定义在jQuery构造函数的prototype对象上面的一个方法,这样做就能使得所有jQuery对象的实例都能共享这个方法。
[b]注意:[/b]
♣始终包裹在一个封闭的插件.
♣不要冗余包裹this关键字在插件的功能范围内.【插件内部,this关键字指的是jQuery对象的实例。而在一般的jQuery回调函数之中,this关键字指的是DOM对象。】
♣除非插件返回特定值,否则总是返回jQuery对象来维持链式操作
♣不要在一个插件中多次命名不同方法
把顶层对象(window)作为参数输入,这样可以加快代码的执行速度和执行更有效的最小化操作:
使用extend方法,为参数对象设置属性的默认值:
参考:
[url]http://www.css88.com/archives/4821[/url]
[url]http://javascript.ruanyifeng.com/jquery/plugin.html[/url]
推荐一个比较全面的jQuery插件网站:[url]http://www.jq22.com/[/url]
所谓“插件”,就是用户自己新增的jQuery实例对象的方法。
[b]原理[/b]:
jQuery插件是定义在jQuery构造函数的prototype对象上面的一个方法,这样做就能使得所有jQuery对象的实例都能共享这个方法。
[b]注意:[/b]
♣始终包裹在一个封闭的插件.
♣不要冗余包裹this关键字在插件的功能范围内.【插件内部,this关键字指的是jQuery对象的实例。而在一般的jQuery回调函数之中,this关键字指的是DOM对象。】
♣除非插件返回特定值,否则总是返回jQuery对象来维持链式操作
♣不要在一个插件中多次命名不同方法
//避免和其他JavaScript库冲突,将jQuery传递给一个自执行的封闭程序,jQuery在此程序中映射为$符号,这样可以避免$号被其他库覆写。
//最前面有一个分号,是为了防止多个脚本文件合并时,其他脚本的结尾语句没有添加分号,造成运行时错误。
;(function ($) {
$.fn.myPlugin = function () {
//你自己的插件代码
};
})(jQuery);
把顶层对象(window)作为参数输入,这样可以加快代码的执行速度和执行更有效的最小化操作:
;(function ($, window) {
$.fn.myPlugin = function() {
//你自己的插件代码
};
}(jQuery, window));
使用extend方法,为参数对象设置属性的默认值:
;(function ($) {
$.fn.myPlugin = function (options) {
//创建一些默认值,拓展任何被提供的选项
var settings = $.extend({
'location': 'top',
'background-color': 'blue'
}, options);
return this.each(function (){
// 你自己的插件代码
});
};
})(jQuery);
参考:
[url]http://www.css88.com/archives/4821[/url]
[url]http://javascript.ruanyifeng.com/jquery/plugin.html[/url]
推荐一个比较全面的jQuery插件网站:[url]http://www.jq22.com/[/url]