您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

自己动手开发jQuery插件教程_jquery

2024/3/17 15:48:30发布23次查看
因为工作需要,所以这几天琢磨了一下关于jquery插件开发的问题,经过一天鏖战,终于完成自己动手做的第一个jquery插件,对于俺这种见了css就头痛的人来说,一天时间8小时,保守估计有5个小时在弄css(我css文盲级别,形容得还不够贴切,如果说文盲不会写字,只会说话,那我是连话都不会说的级别。),好了,废话少说,切入正题。
首先要了解jquery插件开发分两种,1.类级别的插件开发。2.对象级别插件开发。
什么? 你居然问什么是类级别和什么是对象级别?
类级别你可以理解为拓展jquery类,最简单的$.post(...);
对象级别则可以理解为基于对象的拓展,如$(#me).fuck(...); 这里这个fuck呢,就是基于对象的拓展了。点到即止,想深入的童鞋请花rmb买书or网上查资料,书上比俺介绍得更清楚。so...next...
至于您要写一个什么东东呢?就轮到前面提到的类级别和对象级别的造型登场了,因为这写法大千世界无奇不有,千奇百怪,各有千秋,写法规范也不统一,俺就按俺觉得最简便的方法写了,hava a look!
复制代码 代码如下:
类级别写法:jquery.插件名称=function(){.....};
调用方法:$.插件名称();
暴露参数这些东西,先暂时不提到。一步步来..
上面这玩意儿呢,弹出对话框插件,这么说,是先理解要紧,什么是插件,什么是类级别的插件?来看一下页面启动的效果,上图上真相,你懂的..
来比较一下对象级别插件写法:go on!
复制代码 代码如下:
(function($) {
$.fn.pluginname = function() {
// 代码区域。
};
})(jquery);
对象级别写法:$.fn.插件名称 = function(){};多了一个fn,没错,是fn! fn!!! fn!!!
调用方法:$(#me).插件名称();
稍微说一下,$.插件名称();是通过$访问调用jquery中的全局函数,直接可以通过jquery或者美元$调用,从而实现一些效果。
$(#me).插件名称();是通过一个jquery对象所调用的一个函数,什么? 你居然发现这个写法外面一层多了个东东? 阿? 你问怎么回事?
the first,我们必须先了解一下闭包这个玩意儿的造型(框架),look!,这就是传说中用来开发jquery插件的东东
复制代码 代码如下:
(function($){
//这里是您写东东的地方,不收地税,工商税,个人所得税等..放心大胆使用。
})(jquery);
(function($){ //这里是您写东东的地方,不收地税,工商税,个人所得税等..放心大胆使用。})(jquery);
这里function 后面的$参数,形参,在函数体内部的使用呢,$就是当前您当前整在调用该函数的对象了,这样就能干很多事了....你懂的。
用一个tabs面板切换插件来详细演示一下jquery对象级别插件的具体开发,直接上代码。
首先上html:
复制代码 代码如下:
选项1
选项2
选项3
11111
22222
33333
再上插件源码:
/*
tabs面板插件,版本1.0(2011.08.24)
用法:$(#mydiv).tabs({switchingmode:click});
参数解释:switchingmode是面板切换的模式,如switchingmode:mouseover则鼠标移动至选项卡切换面板,默认为click。
整体tabs骨架不变,依然是常用的结构如下:
复制代码 代码如下:
选项卡区域ul
选项1
选项2
面板区域div
面板1
面板2
样式:此样式为默认无任何效果样式,可根据需要修改插件样式。
复制代码 代码如下:
*/
; (function ($) {
$.fn.tabs = function (options) {
var defualts = { switchingmode: click };
var opts = $.extend({}, defualts, options);
var obj = $(this);
var clickindex = 0;
obj.addclass(tabsdiv);
$(ul li:first, obj).addclass(tabsseletedli);
$(ul li, obj).not(:first).addclass(tabsunseletedli);
$(div, obj).not(:first).hide();
$(ul li, obj).bind(opts.switchingmode, function () {
if (clickindex != $(ul li, obj).index($(this))) {
clickindex = $(ul li, obj).index($(this));
$(.tabsseletedli, obj).removeclass(tabsseletedli).addclass(tabsunseletedli);
$(this).removeclass(tabsunseletedli).addclass(tabsseletedli);
var divid = $(a, $(this)).attr(href).substr(1);
$(div, obj).hide();
$(# + divid, obj).show();
};
});
};
})(jquery);
接下来上插件样式:
复制代码 代码如下:
body{background-color: black;}
.tabsdiv{width: 500px;height: 350px;margin-top: 0px;margin-left: 0px;}
.tabsdiv ul{width: 500px;height: 20px;list-style: none;background-color: black;margin-bottom: 0px;margin: 0px;padding: 0px;}
.tabsdiv div{width: 500px;height: 330px;background-color: white;}
.tabsseletedli{width: 100px;height: 20px;background-color: white;float: left;text-align: center;}
.tabsseletedli a{width: 100px;height: 20px;color: black;}
.tabsunseletedli{width: 100px;height: 20px;background-color: black;float: left;text-align: center;}
.tabsunseletedli a{width: 100px;height: 20px;color: white;}
最终效果图,你懂的:
原文:http://www.cnblogs.com/johnstart/archive/2011/08/24/jqueryplugin.html
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product