使用自定义 jQuery 插件的一个选项卡Demo
前几天闲着没事,想着编写一个 jQuery 插件,或许这将是一个美好的开始。
这里是html页面:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="GB2312" />
<title>选项卡</title>
<link href="css/tabs.css" rel="stylesheet" type="text/css"/>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/tabs.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#mytabs").tabs();
});
</script>
</head>
<body>
<div id="mytabs">
<ul>
<li><a href="#tabs1">选项1</a></li>
<li><a href="#tabs2">选项2</a></li>
<li><a href="#tabs3">选项3</a></li>
<li><a href="#tabs4">选项4</a></li>
</ul>
<div id="tabs1">First</div>
<div id="tabs2">Second</div>
<div id="tabs3">Third</div>
<div id="tabs4">Fourth</div>
</div>
</body>
</html>
下面看面按照顺序给出引用的内容。
首先是样式文件css/tabs.css :
body {
background-color: #EEE;
}
.tabsDiv {
width: 500px;
height: 350px;
margin: 100px auto;
border: 1px solid black;
background-color: white;
}
.tabsDiv ul {
width: 500px;
height: 30px;
list-style: none;
margin: 0px;
padding: 0px;
}
.tabsDiv li {
width:25%;
height:30px;
line-height:30px;
}
.tabsDiv div {
background-color: yellow;
height:20px;
width:60px;
text-align: center;
margin: 50px auto;
}
.tabsSeletedLi {
background-color: white;
float: left;
text-align: center;
}
.tabsSeletedLi a {
color: black;
text-decoration: none;
font-weight:bold;
}
.tabsSeletedLi a:hover {
color: grey;
}
.tabsUnSeletedLi {
background-color: black;
float: left;
text-align: center;
}
.tabsUnSeletedLi a {
color: white;
text-decoration: none;
font-weight:bold;
}
.tabsUnSeletedLi a:hover {
color: grey;
}
需要引用的 js/jquery.min.js 是必不可少的,这里就不提供了,大家可以自己去下载。
接下来是自定义jQuery插件 js/tabs.js :
(function($) {
$.fn.tabs = function() {
var opts = {
switchingMode: "mouseover" // or "click"
};
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);
这个插件的最大好处就是可以更改 tabs 的切换方式,试着把 switchingMode: "mouseover" 改成 switchingMode: "click" 然后看看有什么效果?
使用自定义 jQuery 插件的一个选项卡Demo的更多相关文章
- 如何创建一个自定义jQuery插件
简介 jQuery 库是专为加快 JavaScript 开发速度而设计的.通过简化编写 JavaScript 的方式,减少代码量.使用 jQuery 库时,您可能会发现您经常为一些常用函数重写相同的代 ...
- 自定义jQuery插件Step by Step
1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于 Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是Responsive Desig ...
- 【jQuery基础学习】08 编写自定义jQuery插件
目的:虽然jQuery各种各样的功能已经很完善了,但是我们还是要学会自己去编写插件.这样我们可以去封装一些项目中经常用到的专属的代码,以便后期维护和提高开发效率. jQuery插件的类型: 封装对象方 ...
- 1.ssm web项目中的遇到的坑--自定义JQuery插件(slide menu)
自定义的JQuery插件写的回调函数不执行: 写好了回调函数,将函数打印出来是原形,就是不执行 function () { console.log("---onClickItem---&qu ...
- 自定义Jquery插件——由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件
由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件下面是代码: // 掉用方式支持 $('select').textBeauty(1 ...
- jQuery插件学习之选项卡Tab
在网站开发中经常会用到选项卡功能,为了节省一下写代码时间,封装了一下tab插件,方便调用. 来看一下效果: tab-1 tab-2 tab-3 tabs-1-panel tabs-2-panel ta ...
- 自定义JQuery插件之 beforeFocus
<html> <head> <title></title> <script type="text/javascript" sr ...
- 自定义jquery插件
参考:http://blog.csdn.net/bao19901210/article/details/21540137/ 自己看代码理解: <!DOCTYPE html> <htm ...
- 快速创建jquery插件
介绍 什么是插件? 插件我们见得很多了,比如浏览器上我们会安装一些去除广告的插件.美化页面的插件等等. 在前端,我们也常常写一些jquery插件来使用.来添加我们常常写的一些功能,方便使用. 为什么要 ...
随机推荐
- MSSQLSERVER数据库- 解决不允许保存更改表结构
工具菜单----选项----Designers(设计器)----阻止保存要求重新创建表的更改 取消勾选
- Chrome 插件vimium快捷键大全
vimium是一款让你在chrome浏览器能方便地使用键盘操作浏览器的插件. 转自:http://www.cnblogs.com/liuyangnuts/p/3474905.html 在当前页中导航 ...
- Java中字符流与字节流的区别
字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组.所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单 ...
- Linux 汇编语言开发指南
http://www.ibm.com/developerworks/cn/linux/l-assembly/
- linux atime ctime mtime
touch testtime 1. stat testtime[为文件名] 可以查看这个文件名的三者状态 2.ll testtime;ll --time=atime testtime ;ll --ti ...
- 【转】BeagleBone Black USB一线通(3)
接上篇 BeagleBone Black 一线通(2) 五.vnc图形终端 虽然 BB-Black带有一个Micro-HDMI接口,不过那么名片不到的一个小板,连接到一个20来寸的显示器上,还是有些 ...
- JQ 如何设置单选按钮问题
<input type="radio" name="db_12" value="2" checked="checked/&g ...
- 搭建用友开发环境(基于碧桂园的nchome)
1.解压uap_studio6.3 2.授权 3.解压ufjdk.rar到指定路径 4.配置java的环境变量 5.解压BGY50602.7z到指定目录 6.然后在studio中导入BYG5002 7 ...
- 20160331javaweb之JSP 标签技术
jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 <jsp:in ...
- poj1308 Is It A Tree?(并查集)详解
poj1308 http://poj.org/problem?id=1308 题目大意:输入若干组测试数据,输入 (-1 -1) 时输入结束.每组测试数据以输入(0 0)为结束标志.然后根据所给的 ...