自定义jQuery选项卡插件实例


Posted in Javascript onMarch 27, 2013
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jQuery自定义选项卡插件</title>
<style>
body, ul { padding:0; margin:0; }
li { list-style:none; }
#tabs { zoom:1; }
#tab:after { content:""; display:block; clear:both; }
#tabs li { float:left; padding:10px; color:#FF8900; background:#FFF; cursor:pointer; }
#tabs .active { background:#FF8900; color:#FFF; }
#tabContent { background:#FF8900; color:#FFF; padding:10px; clear:both; }
#tabContent div { display:none; }
#tabContent div.active { display:block; }
</style>
</head>
<body>
<ul id="tabs">
  <li data-tab="users">Users</li>
  <li data-tab="groups">Groups</li>
</ul>
<div id="tabContent">
  <div data-tab="users">Users Content</div>
  <div data-tab="groups">Groups Content</div>
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
jQuery.fn.tabs = function (control) {
    var element = $(this);
    var control = $(control);
    element.delegate('li', 'click', function () {
        // 遍历选项卡名称
        var tabName = $(this).attr('data-tab');
        // 点击选项卡时触发自定义事件
        element.trigger('change.tabs', tabName);
    });
    // 绑定到自定义事件
    element.bind('change.tabs', function (ev, tabName) {
        element.find('li').removeClass('active');
        element.find('>[data-tab=' + tabName + ']').addClass('active');
    });
    element.bind('change.tabs', function (ev, tabName) {
        control.find('>[data-tab]').removeClass('active');
        control.find('>[data-tab=' + tabName + ']').addClass('active');
    });
    // 激活第 1 个选项卡
    var firstName = element.find('li:first').attr('data-tab');
    element.trigger('change.tabs', firstName);
    return this;
};
jQuery(function ($) {
    $('#tabs').tabs('#tabContent');
    $('#tab').bind('change.tabs', function (ev, tabName) {
        window.loaction.hash = tabName;
    });
    $(window).bind('hashchange', function () {
        var tabName = window.location.hash.slice(1);
        $('#tabs').trigger('change.tabs', tabName);
    });
});
</script>
</body>
</html>
Javascript 相关文章推荐
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
Feb 07 Javascript
react-native-video实现视频全屏播放的方法
Mar 19 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 Javascript
使用Ajax实现无刷新上传文件
Apr 12 Javascript
js数组的操作详解
Mar 27 #Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 #Javascript
css transform 3D幻灯片特效实现步骤解读
Mar 27 #Javascript
JS删除数组元素的函数介绍
Mar 27 #Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 #Javascript
Json对象与Json字符串互转(4种转换方式)
Mar 27 #Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 #Javascript
You might like
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
php GUID生成函数和类
2014/03/10 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
js拦截alert对话框另类应用
2013/01/16 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JS中Location使用详解
2015/05/12 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
python图像处理入门(一)
2019/04/04 Python
Python控制Firefox方法总结
2019/06/03 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
.NET方向面试题
2014/11/20 面试题
幼儿园小班评语
2014/04/18 职场文书
企业文化演讲稿
2014/05/20 职场文书
科技工作者先进事迹
2014/08/16 职场文书
个人委托书怎么写
2014/09/17 职场文书
2016年春节慰问信息
2015/03/25 职场文书
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers