自定义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加密解密7种方法总结分析
Oct 07 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
JS二维数组的定义说明
Mar 03 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 Javascript
jquery+ajax实现跨域请求的方法
Jan 20 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
深入理解js中this的用法
May 28 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
uni-app实现获取验证码倒计时功能
Nov 01 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
mysq GBKl乱码
2006/11/28 PHP
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php for 循环使用的简单实例
2016/06/02 PHP
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
个人自我评价范文
2014/02/05 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
个人函授自我鉴定
2014/03/25 职场文书
公司经理任命书
2014/06/05 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
公司委托书格式范本
2014/09/16 职场文书
个人收入证明范本
2014/09/18 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
画展邀请函
2015/01/31 职场文书
亮剑观后感
2015/06/05 职场文书
安全教育主题班会教案
2015/08/12 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
HTML+JS实现在线朗读器
2022/02/15 Javascript