自定义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 相关文章推荐
Ext.MessageBox工具类简介
Dec 10 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
jquery实现简洁文件上传表单样式
Nov 02 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
javascript计算渐变颜色的实例
Sep 22 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
ant design的table组件实现全选功能以及自定义分页
Nov 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
一个多文件上传的例子(原创)
2006/10/09 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
Python实现telnet服务器的方法
2015/07/10 Python
python解析xml简单示例
2019/06/21 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python 对xml解析的示例
2021/02/27 Python
师范应届毕业生自荐信
2013/11/18 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
一体化教学实施方案
2014/05/10 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
《检阅》教学反思
2016/02/22 职场文书
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python