首页 > 代码库 > jQuery选项卡插件
jQuery选项卡插件
html结构
<ul id="tabs" class="tabs"> <li data-tab="users">Users</li> <li data-tab="groups">Groups</li></ul><div id="tabsContent" class="tabsContent"> <div data-tab="users" class="tab-item"> item1 </div> <div data-tab="groups" class="tab-item"> item2 </div></div>
css样式
.tabs{ width:500px; height:30px; background:#eee;}.tabs li{ float:left; width:250px; font:18px/30px "Microsoft YaHei"; color:#333; text-align: center; cursor: pointer;}.tabs li.active{ background:#0aa;}.tabsContent{ width:498px; border:1px solid #888;}.tabsContent .tab-item{ height:250px; width:100%; font-size: 45px; display: none;}.tabsContent .active{ display: block;}
js脚本
(function ($) { /* * jquery tabs 插件 */ $.fn.tabs = function (control) { var $element = $(this), // 切换的触点 li => tabs $control = $(control); // 切换的内容 tab-item => tabsContent // 委托li的点击事件 $element.delegate("li", "click", function () { // li 对应的 data-tab属性值 var tabName = $(this).attr("data-tab"); $element.trigger("change.tab", tabName); }); // change.tab 第一步:改变li.active $element.bind("change.tab", function (e, tabName) { $element.find("[data-tab]").removeClass("active"); $element.find("[data-tab="+ tabName +"]").addClass("active"); }); // change.tab 第二步:改变tab-item.active $element.bind("change.tab", function (e, tabName) { $control.find("[data-tab]").removeClass("active"); $control.find("[data-tab="+ tabName +"]").addClass("active"); }); // 激活第一个选项卡 $element.trigger("change.tab", $element.find("li:first").attr("data-tab")); return this; // 返回链式调用 };})(jQuery);// 基本示例$("#tabs").tabs("#tabsContent");/* * 应用扩展 * 切换时将tabName写入hash * 当hashchange的时候触发tabs切换*/// 当切换的时候,把tabName写入hash$("#tabs").bind("change.tab", function (e, tabName) { location.hash = tabName;});// 目前除了 ie67 外都原生支持 hashchange 事件$(window).bind("hashchange", function () { var tabName = location.hash.slice(1); $("#tabs").trigger("change.tab", tabName);});
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。