国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

bootstrap選項(xiàng)卡擴(kuò)展功能詳解

2019-11-19 16:20:15
字體:
供稿:網(wǎng)友

用了下bootstrap,雖然好看,但是控件跟之前用的easyui相差很大,功能太少,不得不自己寫。

花了幾個(gè)小時(shí)把tabs控件擴(kuò)展了下。下面是代碼

頁面代碼:

<!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title></title>  <link href="Content/bootstrap.css" rel="external nofollow" rel="stylesheet" />  <script src="Scripts/jquery-1.10.2.js"></script>  <script src="Scripts/bootstrap.js"></script>  <style type="text/css">    .pagetabs{height:41px;}    .nav-tabs > li{padding: 0 1px;}    .nav-tabs > li > a{color: #555;padding:8px 25px 8px 15px;border-top:4px solid transparent;background-color:#eee;border:1px solid #ddd;border-bottom-color:transparent;}    .nav-tabs > li > a > .close{display:inline-block;float:inherit;position: absolute;top: 1px;font-size: 18px;font-weight: inherit;right: 5px;}    .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus{border-top: 4px solid #ffa405;}    .nav-tabs > li > a:hover{background-color:#e3e3e3;border:1px solid #ddd;border-bottom-color:transparent;}    .pagetabs .dropdown-toggle,.pagetabs .dropdown-toggle:hover{border:none;background-color:transparent;padding:8px;}  </style></head><body>  <div id="tabtest" style="width:600px;"></div></body></html><script>  $(function () {    var toolbar = $('<div class="btn-group"></div>');    $("#tabtest").before(toolbar);    Tabs.init({ selector: $("#tabtest"), close: true });    for (var i = 1; i <= 40; i++) {      (function (i) {        toolbar.append($('<button type="button" class="btn btn-default">' + i + '</button>').click(function () {          Tabs.addtab({ title: "測(cè)試" + i, bindcode: i, content: i + " " + lwFW.dateHelper.toString(new Date(), "yyyy-MM-dd HH:mm:ss") });          //Tabs.addtab({ title: "測(cè)試" + i, bindcode: i, url: "http://www.baidu.com" });        }));      })(i);    };  });</script>

控件代碼:

//選項(xiàng)卡var Tabs = (function ($) {  var options = {    selector: undefined,//    close: false,//是否可以關(guān)閉標(biāo)簽    //contextmenu: false,//右鍵菜單    closeCallback: function () { }  };  var _newtab;  var _tabcontent;  var _drop;  var tab = function () {    this.options = {      title: "",      bindcode: undefined,      url: undefined,      close: false    };    var isfull = false;    this.init = function (setting) {      $.extend(this.options, setting);    };    this.addtab = function (setting) {      $.extend(this.options, setting);      var li, litop, hasdata;      if (!_drop) {        _drop = new droplist();      };      hasdata = ishas(this.options);      if (!hasdata.has) {        li = $('<li><a href="#page' + this.options.bindcode + '" rel="external nofollow" data-toggle="tab">' + this.options.title + '<span class="close">×</span></a></li>');        li.data("data", $.extend(true, {}, this.options));      } else {        li = hasdata.selector.off("click");      };      li.prependTo(options.selector);      li.find("span.close").show().on("click", function () {        closetab(this);      });      options.selector.children("li").not(li).removeClass("active");      li.addClass("active");      litop = _drop.options.selector.position().top, paneltop = options.selector.position().top;      if (litop > paneltop) { //超出檢測(cè)        _drop.addDropItem();      };    };    function closetab(target) {      var pager = $(target).parent().attr("href");      $(target).closest("li").remove();      options.selector.next().find(pager).remove();      if (options.selector.find("li.active").length <= 0) {        options.selector.find("li>a:first").tab("show");      };      var li = _drop.options.ulpanel.children("li:first");      if (li.length <= 0) return;      li.find("span.close").show();      _drop.options.selector.before(li);      if (_drop.options.selector.position().top > options.selector.position().top) {        li.find("span.close").hide();        _drop.options.ulpanel.append(li);        return;      };      li.off("click");      if (_drop.options.ulpanel.children("li").length <= 0) {        _drop.options.selector.css({ "visibility": "hidden" });      };    };    function ishas(setting) {//檢測(cè)選項(xiàng)卡是否存在      var lis = options.selector.find("li"), lidata, hasdata;      hasdata = { selector: undefined, has: false };      $.each(lis, function () {        lidata = $(this).data("data");        if (!lidata) return true;        if (lidata.title === setting.title && lidata.bindcode === setting.bindcode && lidata.url === setting.url) {          hasdata = { selector: $(this), has: true };          return false;        };      });      return hasdata;    };  };  var tabcontent = function () {    this.options = {      selector:undefined    };    var option = {      bindcode: undefined,      url: undefined,      content:undefined    };    this.init = function () {      var content = $('<div class="tab-content"></div>');      this.options.selector = content;      options.selector.after(this.options.selector);    };    this.addContent = function (setting) {      var page,iframe;      $.extend(option, setting);      hasdata = ishas(option);      if (!hasdata.has) {        page = $('<div id="page' + option.bindcode + '" class="tab-pane"></div>').data("data", $.extend(true, {}, option));        if (!option.url) {          page.html(option.content);        } else {          iframe = $('<iframe src="' + option.url + '" onload="lwFW.windowHelper.autoiframe(this)" scrolling="no"></iframe>');          page.append(iframe);        };        page.appendTo(this.options.selector);      } else {        page = hasdata.selector;      };      this.options.selector.children("div").not(page).removeClass("active");      page.addClass("active");    };    function ishas(setting) {//檢測(cè)選項(xiàng)卡是否存在      var divs = _tabcontent.options.selector.children("div"), divdata, hasdata;      hasdata = { selector: undefined, has: false };      $.each(divs, function () {        divdata = $(this).data("data");        if (!divdata) return true;        if (divdata.bindcode === setting.bindcode) {          hasdata = { selector: $(this), has: true };          return false;        };      });      return hasdata;    };  };  var droplist = function () {    this.options = {      selector: undefined,      ulpanel: undefined    };    this.init = function (panel) {      var li = $('<li class="dropdown pull-right"><a class="dropdown-toggle" data-toggle="dropdown" href="#" rel="external nofollow" ><b class="caret"></b></a><ul class="dropdown-menu"></ul></li>');      this.options.selector = li.css({ "visibility": "hidden" });      this.options.ulpanel = li.children("ul");      this.options.selector.appendTo(panel);    };    this.addDropItem = function () {      additem(this.options.selector, this.options.ulpanel);    };    function additem(li, ul) {      var item = options.selector.children("li").not(li).last();      li.css({ "visibility": "visible" });      if (item.length <= 0) return;      item.find("span.close").hide();      ul.append(item);      item.one("click", function () {        itemtarget(this, li, ul);      });    };    function itemtarget(target, selector, ulpanel) {      var item = options.selector.children("li").not(selector).last();      $(target).find("span.close").show();      $(target).prependTo(options.selector);      if (item.length <= 0) return;      if (selector.position().top > options.selector.position().top) {        item.find("span.close").hide();        ulpanel.append(item);      };      item.one("click", function () {        itemtarget(this, selector, ulpanel);      });    };  };  function init(setting) {    $.extend(options, setting);    if (!options.selector) {      return;    };    if (options.selector[0].tagName.toLowerCase() != "ul") {      var selector = $('<ul class="nav nav-tabs pagetabs"></ul>').appendTo(options.selector);      options.selector = selector;    };    if (!_drop) {      _drop = new droplist();    };    _drop.init(options.selector);    if (!_tabcontent) {      _tabcontent = new tabcontent();    };    _tabcontent.init();    if (!_newtab) {      _newtab = new tab();    };  };  function addtab(setting) {    if (!_newtab) {      _newtab = new tab();    };    _newtab.addtab(setting);    if (!_tabcontent) {      _tabcontent = new tabcontent();    };    _tabcontent.addContent(setting);    options.selector.find('li>a').filter('[href=#page' + setting.bindcode + ']').tab("show");  };  return {    init: function (setting) {      init(setting);    }, addtab: function (setting) {      addtab(setting);    }  };})(jQuery);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新宾| 即墨市| 新巴尔虎右旗| 行唐县| 章丘市| 大丰市| 伊金霍洛旗| 惠安县| 亚东县| 民县| 韩城市| 鹤山市| 古丈县| 伊吾县| 天气| 新田县| 修文县| 宝山区| 东乌| 高雄县| 天峨县| 远安县| 双城市| 桦甸市| 顺义区| 安塞县| 江源县| 马尔康县| 江山市| 论坛| 木里| 鸡东县| 西和县| 连云港市| 江孜县| 华池县| 浏阳市| 涟水县| 车险| 平阴县| 贵州省|