自定义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 相关文章推荐
javascript css styleFloat和cssFloat
Mar 15 Javascript
jquery实现瀑布流效果分享
Mar 26 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
Oct 31 Javascript
vue的一个分页组件的示例代码
Dec 25 Javascript
原生JS实现的碰撞检测功能示例
May 18 Javascript
js实现简单页面全屏
Sep 17 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常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
php网页病毒清除类
2014/12/08 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
js保留小数点后几位的写法
2014/01/03 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
详解python中的json和字典dict
2018/06/22 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
Python笔记之工厂模式
2019/11/20 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
美术师范毕业生自荐信
2013/11/16 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
校园安全演讲稿
2014/05/09 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
技术股东合作协议书
2014/12/02 职场文书
社区党支部承诺书
2015/04/29 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python