jquery tab插件制作实现代码


Posted in Javascript onJune 22, 2010

jquery插件的基本格式:

(function($){ 
$.fn.tab = function(options){//$.fn后面的tab是这个插件的函数名称。可以更具自己喜好进行修改 
var defaults = { 
//相关属性设置 
} 
var options = $.extend(defaults, options); 
this.each(function(){ 
//实现的功能设置 }); 
}; 
})(jQuery);

我这里是做一个tab的插件,我来完善以上代码
(function($){ 
$.fn.tab = function(options){ 
var defaults = { 
eventname:"click",//触发事件,click为点击,mousemove为鼠标移动 
titlekeyid:"tabtitle",//切换的ID 
sedcss:"sed",//选中时的CSS 
nosedcss:"nosed" //未选中时的CSS 
} 
var options = $.extend(defaults, options); 
this.each(function(){ 
var tab=$(this); 
//绑定事件 
$(tab).find("li").bind(options.eventname,function(){ 
$("#"+options.titlekeyid).find("li").attr("class", options.nosedcss); 
$(this).attr("class", options.sedcss); 
$("#"+options.titlekeyid+"info").find("div").css("display", "none"); 
$("#"+$(this).attr("id")+"info").css("display", "block"); 
//个人JS能力还是有限,感觉代码写的不好 
}); 
}); 
}; 
})(jQuery);

我想大家都用过一些jquery插件,我这里看下插件使用时的代码:
(代码二)
<script type="text/javascript"> 
$().ready(function(){ 
$("#tabtitle").tab({eventname:"mousemove",sedcss:"sed"}); 
}) 
</script>

结合以上两段代码进行说明
$("#tabtitle")表示你要使用在哪个地方,稍微了解jquery的童鞋都知道是什么意思了,不多介绍了, 
.tab 就是这个插件我们定义的函数名了,对照(代码一)中的$.fn.tab中的tab。 
.tab({eventname:"mousemove",sedcss:"sed"}); 中eventname和sedcss就是(代码一)var defaults ={};中定义的属性值了。如果我们不需要改变属性值,那么我们就使用默认的属性值,那么插件就应该这样使用 
<script type="text/javascript"> 
$().ready(function(){ 
$("#tabtitle").tab(); 
}) 
</script>

最后附上全部的页面代码:
<html> 
<head> 
<title>tab test</title> 
<script type="text/javascript" src="jquery.js"> 
</script> 
<script type="text/javascript" src="jquery.joyleetab.js"> 
</script> 
<script type="text/javascript"> 
$().ready(function(){ 
$("#tabtitle").tab({eventname:"mousemove",sedcss:"sed"}); 
}) 
</script> 
<link href="css.css" rel="stylesheet" type="text/css"> 
</head> 
<body> 
<ul id="tabtitle">//这里的ID对应$("#tabtitle")中的ID,LI的ID分别是尾部添加数字 
<li id="tabtitle1" class="sed">asdfasfd</li> 
<li id="tabtitle2">asdfasfd</li> 
<li id="tabtitle3">asdfasfd</li> 
<li id="tabtitle4">asdfasfd</li> 
<li id="tabtitle5">asdfasfd</li> 
</ul> 
<div id="tabtitleinfo">//这里的ID对ul中的ID,ID分别是尾部添加数字和"info" 
<div id="tabtitle1info" >000000</div> 
<div id="tabtitle2info" style=" display:none">111111</div> 
<div id="tabtitle3info" style=" display:none">22222</div> 
<div id="tabtitle4info" style=" display:none">33333</div> 
<div id="tabtitle5info" style=" display:none">44444</div> 
</div> 
</body> 
</html>

此文重点在说明jquery插件的制作方法,示例中代码还有要优化的地方,请见谅
源码打包下载
Javascript 相关文章推荐
jquery validate poshytip 自定义样式
Nov 26 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 Javascript
Vue 拦截器对token过期处理方法
Jan 23 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
Mar 20 Javascript
JS返回页面时自动回滚到历史浏览位置
Sep 26 Javascript
Vue3.0 响应式系统源码逐行分析讲解
Oct 14 Javascript
JS一次前端面试经历记录
Mar 19 Javascript
微信小程序文章列表功能完整实例
Jun 03 Javascript
jquery多浏览器捕捉回车事件代码
Jun 22 #Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 #Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 #Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 #Javascript
js操作时间(年-月-日 时-分-秒 星期几)
Jun 20 #Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 #Javascript
一段批量给页面上的控件赋值js
Jun 19 #Javascript
You might like
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php两种无限分类方法实例
2015/04/21 PHP
php判断linux下程序问题实例
2015/07/09 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
如何在PHP中使用数组
2020/06/09 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
MYSQL基础面试题
2012/05/13 面试题
三个Unix的命令面试题
2015/04/12 面试题
文职个人求职信范文
2013/09/23 职场文书
幼儿园教师教学反思
2014/02/06 职场文书
工会趣味活动方案
2014/08/18 职场文书
私人委托书格式
2014/09/10 职场文书
机动车交通事故协议书
2015/01/29 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS