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&amp;id=6927" data-fun="updateCustom" href="javascript:void(0)">1 &nbsp; 详细信息</a>                </li>
                <li>
                    <a class="" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/quoted/services&amp;id=6927" data-fun="quotedServices" href="javascript:void(0)">2 &nbsp; 服务报价单</a>                </li>
                <li>
                    <a class="" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/contract/services&amp;id=6927" data-fun="createContract" href="javascript:void(0)">3 &nbsp; 生成合同</a>                </li>
                <li>
                    <a class="selected" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/contract/upload&amp;id=6927" data-fun="uploadContract" href="javascript:void(0)">4 &nbsp; 上传合同</a>                </li>
                <li>
                    <a class="shop-add" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/custom/addShop&amp;id=6927" data-fun="createShop" href="javascript:void(0)">5 &nbsp; 添加店铺</a>                </li>
                <li>
                    <a class="order-send" data-url="/oa/branches/v2.0.0.0/index.php?r=sales/argumentProducer/order&amp;id=6927" data-fun="sendOrder" href="javascript:void(0)">6 &nbsp; 发送工单</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切换插件

时间: 2025-01-17 15:10:57

iTabs Tab切换插件的相关文章

jquery简单的tab切换特效插件jquery-tab demo代码下载

原文:jquery简单的tab切换特效插件jquery-tab demo代码下载 源代码下载地址:http://www.zuidaima.com/share/1550463496178688.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htm

前端tab切换 和 validatejs表单验证插件

一.tab切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>

用angularjs做简单的tab切换

用angularjs做简单的tab切换: 页面部分 <div> <div id="tabs" ng-controller="TabsCtrl"> <ul> <li ng-repeat="tab in tabs" ng-class="{active:isActiveTab(tab.url)}" ng-click="onClickTab(tab)">{{tab.t

react做tab切换的几种方式

最近搞一个pc端的活动,搞了一个多月,甚烦,因为相比于pc端,更喜欢移动端多一点.因为移动端又能搞我的react了. 今天主要总结一下react当中tab切换的几种方式,因为tab切换基本上都会用到.当然,你也可以在react当中用jquery或者zepto来实现,不过既然都用react了,能不能用jq,就尽量不用jq.不过不得不吐槽一下,在jquery很简单的东西,在react中稍微复杂化了一点. 目前我用到的tab切换只有两种方式,所以暂时总结这两种,以后有遇到其他的再总结. 第一种.只是子

原生javascript实现Tab切换

tab切换在各大主流页面有广泛的应用,今天来分享一个用原生javascript来实现类似京东购物边栏的TAB.对于正在使用web前端开发(http://www.maiziedu.com/course/web/)网站的朋友,是非常有用的哦. 首先以下是一段边栏HTML框架代码 <body> <div class="wrap"> <div id="left"> <ul id="leftList"> &l

jQuery图片切换插件jquery.cycle.js

Cycle是一个很棒的jQuery图片切换插件,提供了很好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <head> <script type="text/javascript" src="js/jquery-1.8.0.min.js"></script> <script type="text/javascript" src

tab切换

今天我们开始试着写一些js特效,先写一个简单的tab切换,在现实生活中,一些网站tab切换是必不可少的,来下面让我们一起写一下 1,思路: 当点击的时候实现切换并改变里面的内容jQuery实现 2,代码 html代码 1 <div class="wrapper"> 2 <ul class="tab"> 3 <li class="tab-item active">国际大牌<span>◆</spa

CSS3 :target伪类实现Tab切换效果

用:target伪类实现Tab切换效果真的非常简单!简单到什么程度呢?它只需要下面这些代码. style.css: .song-info { position: absolute; background: #fff; } #song-info:target, #song-lyricCN:target, #song-lyricEN:target { z-index: 1; } html代码: <div class="song-nav"> <ul class="

jQuery banner切换插件

今天学写了一个基于jQuery焦点图切换插件,有不对的地方还请多多指教,不多说下面是代码: 1.引jQuery库 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 2.Html部分 <!--Focus Html--> <div class="s_focus"> <ul class="f_img"> &l