bootstrap动态添加Tab标签页

好久没有写博客了(主要是懒),工作中用到一个动态添加Tab的功能,众所周知,bootstrap没有动态添加Tab的功能,网上又没找到什么好用的,那咱就自己写呗?(因为懒,所以只写了添加的方法.(๑>؂<๑)۶)

github地址:https://github.com/renruiquan/bootstrap-dynamic-tabs

不废话了,我就直接上代码了。

bootstrap-dynamic-tabs.js源码如下:

$.fn.addTabs = function (options) {

    //判断是否已存在指定ID的tab
    if ($("#" + options.id).length > 0) {
        throw "当前ID的Tab已存在.";
    }

    //构建li元素
    var li = $("<li />", {
        "id": options.id + "-li",
    });

    //构建a元素
    var a = $("<a />", {
        "href": "#" + options.id,
        "text": options.title,
        "click": function () {
            $(this).tab("show");
        }
    });

    //合并li和a元素
    li.append(a);

    var ul = $(this);
    //合并ul和li元素
    ul.append(li);

    //添加完成显示当前li
    $(li).tab("show");

    //构建div内容元素
    var div = $("<div />", {
        "id": options.id,
        "class": "tab-pane fade in active",
    });

    //兼容纯文本和html片段
    typeof options.content == "string" ? div.append(options.content) : div.html(options.content);

    var container = $(".tab-content");
    container.append(div);

    //添加完成后显示div
    $(div).siblings().removeClass("active");
}

调用的代码和html的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>bootstrap-动态添加Tab</title>
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="bootstrap-theme.min.css">
    <link rel="stylesheet" type="text/css" href="ace.min.css">
</head>

<body style="background-color:white;">
    <div class="container">
        <div class="row hr-16">
            <div class="col-lg-12">
                <button class="btn btn-success">添加Tab</button>
            </div>
        </div>
        <div class="row hr-16">
            <div class="col-sm-12">
                <!-- #section:elements.tab -->
                <div class="tabbable">
                    <ul class="nav nav-tabs" id="myTab">
                        <li class="active">
                            <a data-toggle="tab" href="#home">
                                Home
                            </a>
                        </li>

                        <li>
                            <a data-toggle="tab" href="#messages">
                                Messages
                            </a>
                        </li>
                    </ul>

                    <div class="tab-content">
                        <div id="home" class="tab-pane fade in active">
                            <p>Raw denim you probably haven't heard of them jean shorts Austin.</p>
                        </div>

                        <div id="messages" class="tab-pane fade">
                            <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid.</p>
                        </div>
                    </div>
                </div>

                <!-- /section:elements.tab -->
            </div>
        </div>
    </div>
</body>
</html>

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="bootstrap.min.js"></script>
<script type="text/javascript" src="bootstrap-dynamic-tabs.js"></script>

<script type="text/javascript">

    $(function () {
        var tabs = $("ul.nav-tabs");

        $("button").on("click", function () {
            var count = $(".nav-tabs li").length;

            $.get("template.html", function (data) {
                tabs.addTabs({
                    "id": "abc" + count,
                    "title": "新建工单-" + count,
                    "content": "<p><h1>新建工单-" + count + "的内容</h1></p>" + data
                });
            });
        });
    });

</script>

 

这里我用了ace-admin的样式,最后运行的截图如下:

 

 那啥……忘了说了,要用IIS等Web容器跑,因为我这里用了ajax请求,动态加载远程的html文件了,如果你不想用的话,就把红色的代码删掉吧~

 

时间: 2024-10-11 11:53:16

bootstrap动态添加Tab标签页的相关文章

jQuery EasyUI 布局之动态添加tabs标签页_jquery

在没看下文之前先给大家简单介绍easyui相关知识. easyui是一种基于jQuery的用户界面插件集合.ddd easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面. easyui是个完美支持HTML5网页的完整框架. easyui节省您网页开发的时间和规模. easyui很简单但功能强大的. 通过使用 jQuery EasyUI 可以很容易地添加 Tabs.您只需要调用

jquery ui-jqueryUI tab标签页的增加与切换问题

问题描述 jqueryUI tab标签页的增加与切换问题 请教各位:我想通过点击不同的按钮或超链接, 添加一个tab,每个tab都不一样(可以是id不一样),如果tab已经存在,直接切换到该tab页,否则就增加tab并激活. 如下是我的思路,问题不知道出在哪里,请大侠帮我,不知道哪里脑残了,后面为什么index总是-1?所以我点链接总是切换不回已经打开过的tab页上 /* -----------------初始化 tabs--------------- */ var tabTemplate =

最简单纯JavaScript实现Tab标签页切换的方式(推荐)_javascript技巧

先说一下最土的一种方法: Html: <div class="tab-head"> <h2 id="tab1" onmouseover="changeTab1()" class="selected">1</h2> <h2 id="tab2" onmouseover="changeTab2()">2</h2> <h2 id=

纯css+js写的一个简单的tab标签页带样式_javascript技巧

最近经常要用tab标签页,所以写了一个简单的,以后用的话直接拷贝一个,稍微改改就OK了. 先看效果图:  接下来看下代码怎么写的吧: 一.sp文件easytab.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String b

Android中使用TagFlowLayout制作动态添加删除标签

效果图 简单的效果图(使用开源库)[FlowLayout](" https://github.com/hongyangAndroid/FlowLayout ") 步骤 导包 compile 'com.zhy:flowlayout-lib:1.0.3' <com.zhy.view.flowlayout.TagFlowLayout android:id="@+id/id_flowlayout" zhy:max_select="-1" andro

jquery动态添加tab内嵌ifream插件

下载:jquery动态添加tab内嵌ifream插件 http://download.csdn.net/detail/cometwo/9396522

BootStrap 动态添加验证项和取消验证项的实现方法_javascript技巧

bootstrap 中的bootstrapValidator可以对前端的数据进行验证,但是有的时候我们需要动态的添加验证,这样需要我们动态的对bootstrapValidator的内容做修改. 传统的bootstrapValidator验证是 $('#MaintainEntryForm').bootstrapValidator({ message: '输入值无效!', feedbackIcons: { valid: 'glyphicon glyphicon-ok', invalid: 'glyp

easyui tabs-easyui tab标签页关闭之后内存无法释放

问题描述 easyui tab标签页关闭之后内存无法释放 用的1.4版本的,也做了iframe的删除工作,还是得不到释放,求大神帮忙

jQuery实现简单的tab标签页效果_jquery

本文实例讲述了jQuery实现简单的tab标签页效果.分享给大家供大家参考,具体如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab1</title> <style type="text/css"> *{ padding: 0; margin: 0;} li{ l