标题:jQuery 插件开发指南
只看楼主
cdhqyj
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2020-2-28
结帖率:0
 问题点数:0 回复次数:0 
jQuery 插件开发指南
jQuery凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。

jQuery插件

那么首先我们来简单的看一下正统的 jQuery 插件定义方式:

(function ($) {

$.fn.插件名 = function (settings) {

//默认参数

var defaultSettings = {

} /* 合并默认参数和用户自定义参数 */

settings = $.extend(defaultSettings, settings);

return this.each(function () { //代码 }); //插件在元素内多次出现

} })(jQuery);

先来看模板中的第一行代码(当然我们要把这一行代码的后半部分给揪出来一起看,不然第一行就完全无意义了):

(function ($) {

})(jQuery);

这行代码其实是用于创建一个匿名函数。如果你对匿名函数和闭包不了解,将会对这种代码非常疑惑,那么强烈建议您阅读【详谈JavaScript 匿名函数及闭包】这篇文章。

jQuery 的继承方法 $.extend —— $.extend 在jQuery 插件开发中有个很重要的作用,就是用于合并参数。

$.fn.tip = function (settings) {

var defaultSettings = {

//颜色

color: 'yellow',

//延迟

timeout: 200 }

/* 合并默认参数和用户自定义参数 */

settings = $.extend(defaultSettings, settings);

alert(settings.input);
}

jQuery 插件定义第二种方式:

(function ($) {

//插件定义--更换名字

$.fn.tabpanel = function (method) {

var methods = $.fn.tabpanel.methods;

if (methods[method]) {

return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));

} else if (typeof method === 'object' || !method) {

return methods.init.apply(this, arguments);

} else {

}

}

//支持的方法

$.fn.tabpanel.methods =

{

//初始化

init: function (p_options) {

tabpanelBind(p_options, this);

},

add: function (p_options) {

addTab(p_options, this);

tabpanelBind(p_options, this);

// debugger

} }

function add(p_options) {

var _defaults = {

id: ""

}
//内部实现略.........

return _index;

}

})(jQuery);

调用 $("#team").tabpanel('add',"");
搜索更多相关主题的帖子: this jQuery 参数 插件 function 
2023-02-09 13:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511241-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.172825 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved