自定义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 相关文章推荐
jQuery 使用手册(六)
Sep 23 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
angular directive的简单使用总结
May 24 Javascript
vue 动态绑定背景图片的方法
Aug 10 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
May 29 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
JSON stringify方法原理及实例解析
Oct 23 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 团购折扣计算公式
2011/11/24 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
vue之延时刷新实例
2019/11/14 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python协程的用法和例子详解
2017/09/09 Python
Python中文件的读取和写入操作
2018/04/27 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
高一自我鉴定
2013/12/17 职场文书
工作过失检讨书
2014/02/23 职场文书
就业意向书范文
2014/04/01 职场文书
淘宝客服工作职责
2014/07/11 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
华清池导游词
2015/02/02 职场文书
大四学生个人总结
2015/02/15 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python