html结构

<ul id="tabs" class="tabs">
<li data-tab="users">Users</li>
<li data-tab="groups">Groups</li>
</ul>
<div id="tabsContent" class="tabsContent">
<div data-tab="users" class="tab-item"> item1 </div>
<div data-tab="groups" class="tab-item"> item2 </div>
</div>

css样式

.tabs{
width:500px;
height:30px;
background:#eee;
}
.tabs li{
float:left;
width:250px;
font:18px/30px "Microsoft YaHei";
color:#333;
text-align: center;
cursor: pointer;
}
.tabs li.active{
background:#0aa;
} .tabsContent{
width:498px;
border:1px solid #888;
}
.tabsContent .tab-item{
height:250px;
width:100%;
font-size: 45px;
display: none;
}
.tabsContent .active{
display: block;
}

js脚本

(function ($) {

    /*
* jquery tabs 插件
*/
$.fn.tabs = function (control) { var $element = $(this), // 切换的触点 li => tabs
$control = $(control); // 切换的内容 tab-item => tabsContent // 委托li的点击事件
$element.delegate("li", "click", function () {
// li 对应的 data-tab属性值
var tabName = $(this).attr("data-tab"); $element.trigger("change.tab", tabName);
}); // change.tab 第一步:改变li.active
$element.bind("change.tab", function (e, tabName) {
$element.find("[data-tab]").removeClass("active");
$element.find("[data-tab="+ tabName +"]").addClass("active");
}); // change.tab 第二步:改变tab-item.active
$element.bind("change.tab", function (e, tabName) {
$control.find("[data-tab]").removeClass("active");
$control.find("[data-tab="+ tabName +"]").addClass("active");
}); // 激活第一个选项卡
$element.trigger("change.tab", $element.find("li:first").attr("data-tab")); return this; // 返回链式调用
};
})(jQuery); // 基本示例
$("#tabs").tabs("#tabsContent"); /*
* 应用扩展
* 切换时将tabName写入hash
* 当hashchange的时候触发tabs切换
*/
// 当切换的时候,把tabName写入hash
$("#tabs").bind("change.tab", function (e, tabName) {
location.hash = tabName;
}); // 目前除了 ie67 外都原生支持 hashchange 事件
$(window).bind("hashchange", function () {
var tabName = location.hash.slice(1);
$("#tabs").trigger("change.tab", tabName);
});

jQuery选项卡插件的更多相关文章

  1. 【特效】jquery选项卡插件,页面多个选项卡统一调用

    把选项卡整合了一下,写成个插件,这样可以整个站,或整个页面有多个选项卡时,统一调用.代码的具体注意事项已经写进注释了.用于js获取元素的class名称必须有,选项卡本身的样式,另再取一个名字来设置(本 ...

  2. jQuery选项卡插件、Tabs插件

    效果图: <!DOCTYPE html> <html> <head> <title></title> <script src=&quo ...

  3. jquery自定义插件——以 选项卡插件为例

    一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...

  4. 基于jQuery简单实用的Tabs选项卡插件

    jQuery庞大的插件库总是让人欢喜让人忧,如何从庞大的插件库里挑出适合自己的插件,总是让很多缺少经验的朋友头疼的事!今天为大家推荐几款简单实用的Tabs选项卡插件,推荐理由:简单易用灵活,样式美观, ...

  5. [js插件开发教程]原生js仿jquery架构扩展开发选项卡插件

    jquery插件一般是这么干的: $.fn.插件名称 = function(){}, 把插件的名称加在.fn上,在源码里面实际上是扩展到构造函数的原型对象上,如果你没看过jquery的源代码,或者你曾 ...

  6. JQ实现选项卡(jQuery原型插件扩展)

    下边分为两个版本,一种是点击切换选项(index.js),一种是滑过切换选项(index1.js) HTML文件: jq使用jquery-1.11.3.js版本 <!DOCTYPE html&g ...

  7. 使用jQuery.extend创建一个简单的选项卡插件

    选项卡样式如图,请忽略丑陋的样式,样式可以随意更改 主要是基于jquery的extend扩展出的一个简单的选项卡插件,注意:这里封装的类使用的是es6中的class,所以不兼容ie8等低版本浏览器呦! ...

  8. 使用jQuery开发tab选项卡插件(可以右键关闭多个标签)

    在前一篇“使用jQuery开发tab选项卡插件”的基础上添加了tab标签右键关闭菜单功能,菜单主要包括:关闭当前标签.关闭左侧标签.关闭右侧标签.关闭其他.关闭全部. 一.插件效果 二.实现思路 为w ...

  9. 使用jQuery开发tab选项卡插件

    为了复习巩固jQuery的插件开发.HTML和CSS方面的知识,做了一个简单的tab选项卡插件,简单记录一下开发.使用的过程,以备日后使用. 一.插件效果 tab选项卡插件常用的功能均已实现,包括:动 ...

随机推荐

  1. 洛谷P1459 三值的排序 Sorting a Three-Valued Sequence

    P1459 三值的排序 Sorting a Three-Valued Sequence 166通过 369提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 那么 ...

  2. MFC中release版本和debug版本区别

    最近MFC写了个程序,生成release版,原来正常,后来删掉了些控件再编译运行,结果竟然报内存读写错误,debug却是正常的.后来将“Project   Settings”   中   “C++/C ...

  3. sql语句中日期时间格式化查询

          今天在做会员管理系统搜索时,我发现以前的搜索时间方式不太科学,效率也不是太高.由其是在查询指定的时间相等的时候,我在数据库中都存这样的时间格式"2007-5-22 14:32:1 ...

  4. CopyOnWriteArrayList

    CopyOnWriteArrayList, 内部通过锁+volatile修饰的数组实现的 是一种线程安全的ArrayList,写操作时会copy一个新的内部数组出来替换掉旧 的数组.遍历操作不用加锁了 ...

  5. android studio首次运行出错

    转载2015-10-24 16:28:15 标签:androidstudioandroidstudio无法启androidstudio1.4无法 Internal error. Please repo ...

  6. ftp自动上传下载文件脚本

    FTP自动登录批量下载文件 从ftp服务器192.168.1.60 上的/home/data 到本地的/home/databackup目录 #!/bin/bash ftp -v -n 192.168. ...

  7. 在Qt中使用AnyCAD三维建模控件

    AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...

  8. CentOS安装中文输入法

    yum install "@Chinese Support" System->Preferences->Input Method,勾选"Enable inpu ...

  9. bootstrap知识小点

    年底没什么项目做了,整理下最近做的网站使用到的bootstrap知识 一.导入bootstrap样式和脚本 <link href="css/bootstrap.min.css" ...

  10. MapReduce框架Partitioner分区方法

    前言:对于二次排序相信大家也是似懂非懂,我也是一样,对其中的很多方法都不理解诶,所有只有暂时放在一边,当你接触到其他的函数,你知道的越多时你对二次排序的理解也就更深入了,同时建议大家对wordcoun ...