iTabs Tab切换插件
最近项目中使用到Tab切换,切换的页面不变,内容发生变化,随手写了份简单的插件,附带源码。先看样子:
本人也考虑到是否使用jquery ui tab,但是还是热衷于自己写一份,首先好处之一是易于培训,要培训整个jquery ui还是比较累的。
源码很简单,只是为上面的dom树绑定了点击事件而已。
源码如下:
/**
* JQuery Tabs
* created by oShine
*/
(function ($) { var Tabs = function (dom, events) {
this.dom = dom;
this.events = events; this.init();
}; Tabs.prototype = {
init: function () {
this.bindEvent();
$(this.dom).find(".tags >ul li a.selected").trigger("click");
},
bindEvent: function () { var self = this; $(this.dom).find(".tags >ul li a").click(function (event) { $(self.dom).find(".tags >ul li a.selected").removeClass("selected");
$(this).addClass("selected"); $(self.dom).find(".filter").hide();
if ($(this).attr("data-filter") !== undefined) {
$(self.dom).find($(this).attr("data-filter")).show();
} var fn = $(this).attr("data-fun") !== undefined && typeof self.events[$(this).attr("data-fun")] == "function" ? self.events[$(this).attr("data-fun")] : undefined;
var ajaxUrl = $(this).attr('data-url') !== undefined ? $(this).attr('data-url') : undefined;
if (fn && ajaxUrl) { $.get(ajaxUrl, {}, function (resp) {
$(self.dom).find(".content").html(resp);
fn($(self.dom));
}); } else if (fn) {
fn($(self.dom)); } else if (ajaxUrl) {
$.get(ajaxUrl, {}, function (resp) {
$(self.dom).find(".content").html(resp);
});
} else {
console.log("no function");
} return false;
}); }
}; $.fn.extend({
iTabs: function (events) {
var iTabs = new Tabs($(this), events);
return iTabs;
}
}); })($);
应用如下:
<div class="nav tab-container">
<div class="tab-header">
<div class="tags">
<ul>
<li class="back-header">
<a class="back-btn" data-fun="back" href="javascript:void(0)"></a> </li>
<li>
<a class="" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/custom/update&id=6927" data-fun="updateCustom" href="javascript:void(0)">1 详细信息</a> </li>
<li>
<a class="" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/quoted/services&id=6927" data-fun="quotedServices" href="javascript:void(0)">2 服务报价单</a> </li>
<li>
<a class="" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/contract/services&id=6927" data-fun="createContract" href="javascript:void(0)">3 生成合同</a> </li>
<li>
<a class="selected" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/contract/upload&id=6927" data-fun="uploadContract" href="javascript:void(0)">4 上传合同</a> </li>
<li>
<a class="shop-add" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/custom/addShop&id=6927" data-fun="createShop" href="javascript:void(0)">5 添加店铺</a> </li>
<li>
<a class="order-send" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/argumentProducer/order&id=6927" data-fun="sendOrder" href="javascript:void(0)">6 发送工单</a> </li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="content">
</div>
</div>
</div>
看到每一个a上面有 data-url和data-fun的属性没有,该插件就是有一个好处,如果有 data-url的属性会ajax请求该url,并把内容填充到content 元素中,再执行data-fun定义的js function。
js如下:
$(document).ready(function(){
var config = {};
config.sendOrder = function(){};
.....
$(".tab-container").iTabs(config);
});
iTabs Tab切换插件的更多相关文章
- 一个小的tab切换插件
1//使用 var t1=new Tab({ etype:'onmou',//默认点击触发,如果事件写错了,当作单击 autoplay:2000,//有时间值(按照事件自动播放)和false(不自动播 ...
- 编写tab切换插件
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- tab切换插件开发
我开发的tab切换插件,基于jquery库,实现tab标签页的切换.插件的名称为jquery.tabSwitch.js. 插件实现代码如下: ; (function ($) { $.fn.tabSwi ...
- swiper插件遇上tab切换
当swiper插件遇到tab切换,即display的显示与否属性时,失效,方法如下: <script language="javascript"> var mySwip ...
- 前端tab切换 和 validatejs表单验证插件
一.tab切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- jquery TAB切换小插件
//tab切换 ;(function($, window, document, undefined) { $.fn.tab = function(options) { var defaults = { ...
- 解决微信小程序的wx-charts插件tab切换时的显示会出现位置移动问题-tab切换时,图表显示错乱-实现滑动tab
解决Echarts在微信小程序tab切换时的显示会出现位置移动问题 tab切换时,图表显示错乱 <canvas class="kcanvas" canvas-id=" ...
- jq 折面板+tab切换(自己封装的插件哦!!)
如上图所示的一个折面板效果+tab切换:最重要的js代码如下: 对于布局简单介绍下: hot_wrap_li 这个是带箭头的横条: Arrow 这个是箭头的div:hot_wrap_li_wrap 这 ...
- 自己编写jQuery插件之Tab切换
自己编写jQuery插件之 Tabs切换 jquery ui 带有Tabs切换插件,但其css样式太难维护,引用的东西太多,因此就自己写了个. 起初我Html代码架子是这样的: <div cla ...
随机推荐
- java红黑树
从这里学了一些知识点https://blog.csdn.net/sun_tttt/article/details/65445754,感谢作者
- design thinking
- linux 性能测试工具Lmbench
Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开发者深入了解关键操作的基础成 ...
- PentestBox简明使用教程
介绍 PentestBox:渗透测试盒子 顾名思义,这是一个渗透工具包,但是不同于绝大多数国内xx工具包的是,这里集成的大都是Linux下的工具,Kali Linux上面的常用的很多工具这里面也都集成 ...
- [Android] 录音与播放录音实现
http://blog.csdn.net/cxf7394373/article/details/8313980 android开发文档中有一个关于录音的类MediaRecord,一张图介绍了基本的流程 ...
- Vue 组件间传值
前言 Vue 作为现在比较火的框架之一,相信您在使用的过程中,也会遇到组件间传值的情况,本文将讲解几种 Vue 组件间传值的几种方法,跟着小编一起来学习一下吧! 实现 注意: 学习本文,需要您对 Vu ...
- cogs 341:[NOI2005] 聪聪与可可
★★ 输入文件:cchkk.in 输出文件:cchkk.out 简单对比 时间限制:1 s 内存限制:256 MB [问题描述] 在一个魔法森林里,住着一只聪明的小猫聪聪和一只可爱的小 ...
- # fabirc 配置多组服务器 密码与密钥一起使用 key_filename的设置
环境说明 myv myv2 是配置在/etc/hosts 的两台 虚拟机 虚拟机ip. 参考英文文档 官方文档的例子不是给的很详细.. http://docs.fabfile.org/en/1.13/ ...
- Linux系统巡检项目
系统检测 1.检查系统类型 2.检查发行版本 3.检查内核版本 4.检查主机名称 5.检查是否启用SElinux 6.检测默认的语言/编码 7.检测uptime 8.检测最后启动时间等 CPU检查 1 ...
- Apache ab 测试结果的分析
以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了.就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下.格式: ...