亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

基于jQuery實現Accordion手風琴自定義插件

2019-11-19 18:55:00
字體:
來源:轉載
供稿:網友

目前網上有很多各種各樣的手風琴插件,但是沒有一個完整實現了的側菜單,今天寫了一個可以無限子節點的手風琴側菜單,有需要的可以參考一下,有什么好的想法可以留言。(沒有經過徹底測試,不過問題應該不大)

下面老規矩,直接貼代碼:

(function ($) {  'use strict';  var defaults = {    url: null,    param: {},    data: {},    fill: true,    level_space: 15,    onitemclick: null,    style: {      header: "accordion-header",      header_title: "accordion-header-title",      content: "accordion-content",      selected: "selected",      icon_base: "fa",      icon_collapse: "fa-angle-up",      icon_expand: "fa-angle-down"    }  }  var methods = {    init: function (options) {      return this.each(function () {        var $this = $(this);        if (!$this.hasClass("accordion")) {          $this.addClass("accordion");        }        var settings = $this.data('tw.accordion');        if (typeof (settings) == 'undefined') {          settings = $.extend({}, defaults, options);          $this.data('tw.accordion', settings);        } else {          settings = $.extend({}, settings, options);          $this.data('tw.accordion', settings);        }        if (settings.url) {          $.ajax({            type: "post",            async: false,            url: settings.url,            data: settings.param,            success: function (data) {              settings.data = data;            }          });        }        if (settings.fill) {          $this.height("100%");        }        if (settings.data.length > 0) {          $this.data("count", settings.data.length);          $.each(settings.data, function () {            this.level = 1;            var item = $this.accordion("add", this);            $this.append(item);          });          if ($this.find("." + settings.style.selected).length == 0) {            var data = $this.find(">li:first-child").data("data");            $this.accordion("select", data);          }        }      });    },    add: function (data) {      var $this = $(this);      var settings = $this.data("tw.accordion");      var item = $("<li class='" + settings.style.header + "'></li>");      item.data("data", data);      var header = $("<div class='" + settings.style.header_title + "' data-accordion='" + data.id + "'>" +        "<i class='" + settings.style.icon_base + "" + data.icon + "'></i>" +        "<span>" + data.name + "</span></div>");      header.css("padding-left", settings.level_space * data.level);      item.append(header);      if (data.childrens) {        var toggle = $("<i class='" + settings.style.icon_base + "" + settings.style.icon_collapse + "'></i>");        toggle.css({ "font-size": "1.4em", "position": "absolute", "top": "7px", "right": "7px" });        header.append(toggle);        var content = $("<ul class='" + settings.style.content + "'></ul>");        content.data("count", data.childrens.length);        $.each(data.childrens, function () {          this.level = data.level + 1;          var child = $this.accordion("add", this);          content.append(child);        });        item.append(content);      }      header.click(function () {        $this.accordion("select", data);      });      if (data.selected) {        $this.accordion("select", data);      }      return item;    },    select: function (data) {      var $this = $(this);      var settings = $this.data("tw.accordion");      var header = $this.find("[data-accordion='" + data.id + "']");      var item = header.parent();      if (!header.hasClass(settings.style.selected) && !item.hasClass(settings.style.selected)) {        var sibling = item.siblings();        sibling.removeClass(settings.style.selected).children("." + settings.style.selected).removeClass(settings.style.selected);        sibling.children("." + settings.style.icon_expand).removeClass(settings.style.icon_expand).addClass(settings.style.icon_collapse);        if (data.childrens) {          item.addClass(settings.style.selected);          header.find("." + settings.style.icon_collapse).removeClass(settings.style.icon_collapse).addClass(settings.style.icon_expand);          if (settings.fill) {            var count = item.parent().data("count") - 1;            item.css("height", "calc(100% - " + (item.height() * count) + "px)");          }        } else {          header.addClass(settings.style.selected);        }      }      if (settings.onitemclick) {        settings.onitemclick(data);      }    },    update: function (url, param) {      var $this = $(this);      var settings = $this.data("tw.accordion");      if (typeof url == "object") {        settings.param = url;      } else {        settings.url = url;        settings.param = param;      }      $this.accordion("init", settings);    },    destroy: function (options) {      return $(this).each(function () {        var $this = $(this);        $this.removeData('accordion');      });    }  }  $.fn.accordion = function () {    var method = arguments[0];    var args = arguments;    if (typeof (method) == 'object' || !method) {      method = methods.init;    } else if (methods[method]) {      method = methods[method];      args = $.makeArray(arguments).slice(1);    } else {      $.error('Method ' + method + ' does not exist on tw.accordion');      return this;    }    return method.apply(this, args);  }})(jQuery);
.accordion {  margin:0;  padding:0;  font-size:14px;}  .accordion > .accordion-header {    list-style: none;    margin: 0;    padding: 0;    border-bottom: 1px solid #ddd;  }    .accordion > .accordion-header.selected > .accordion-header-title {      color: #0094ff;    }    .accordion > .accordion-header > .accordion-header-title {      position: relative;      width: 100%;      height: 35px;      line-height: 35px;      background: #eee;      border-bottom: 1px solid #ccc;      cursor: pointer;    }      .accordion > .accordion-header > .accordion-header-title > i:first-child {        font-size: 1.3em;      }      .accordion > .accordion-header > .accordion-header-title > span {        position: relative;        top: -1px;        left: 5px;      }    .accordion > .accordion-header > .accordion-content {      display: none;      width: 100%;      height: calc(100% - 35px);      margin: 0;      padding: 0;    }    .accordion > .accordion-header.selected > .accordion-content {      display: block;    }.accordion-content > .accordion-header {    list-style: none;    margin: 0;    padding: 0;}  .accordion-content > .accordion-header.selected {    color: #0094ff;  }  .accordion-content > .accordion-header > .accordion-header-title {    position: relative;    width: 100%;    height: 32px;    line-height: 32px;    cursor: pointer;    border-bottom: 1px solid #ccc;  }    .accordion-content > .accordion-header > .accordion-header-title:hover {      background:#eee;    }    .accordion-content > .accordion-header > .accordion-header-title.selected {      color: #fff;      background: #0094ff;      border-left: 3px solid #ff6a00;      border-bottom: 0px;    }      .accordion-content > .accordion-header > .accordion-header-title > i:first-child {        font-size: 1.2em;      }      .accordion-content > .accordion-header > .accordion-header-title > span {        position: relative;        top: -1px;        left: 5px;      }      .accordion-content > .accordion-header > .accordion-header-title.selected > i:first-child {        position:relative;        left:-3px;      }      .accordion-content > .accordion-header > .accordion-header-title.selected > span {        position: relative;        top: -1px;        left: 2px;      }    .accordion-content > .accordion-header > .accordion-content {      display: none;      width: 100%;      height: calc(100% - 32px);      margin: 0;      padding: 0;    }    .accordion-content > .accordion-header.selected > .accordion-content {      display: block;    }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕国内精品| 国产精品久久久久久网站| 奇米4444一区二区三区| 欧美在线免费视频| 亚洲天堂一区二区三区| 色偷偷91综合久久噜噜| 欧美成人剧情片在线观看| 日韩精品中文字幕视频在线| 欧美性xxxxxxxxx| 亚洲a在线播放| 国产91成人在在线播放| www国产亚洲精品久久网站| 亚洲伊人久久大香线蕉av| 欧美极品欧美精品欧美视频| 国产成人精品日本亚洲专区61| 国产欧美精品在线| 欧美成人亚洲成人| 精品国产福利视频| 国产成人啪精品视频免费网| 日本一欧美一欧美一亚洲视频| 中日韩美女免费视频网站在线观看| 狠狠久久亚洲欧美专区| 亚洲精品永久免费精品| 在线观看免费高清视频97| 日韩在线观看免费全集电视剧网站| 亚洲精品mp4| 国内精品视频在线| 91在线视频精品| 欧洲成人免费视频| 日韩免费视频在线观看| 国产成人一区三区| 2020国产精品视频| 岛国精品视频在线播放| 在线日韩欧美视频| 97精品视频在线| 日韩中文字幕在线精品| 成人av在线天堂| 亚洲美女av网站| 国产精品自拍偷拍| 国产精品福利片| 久久精品成人动漫| 欧美激情久久久| 久久精品色欧美aⅴ一区二区| 国产精品露脸自拍| 欧美日韩国产麻豆| 国产欧美日韩亚洲精品| 一个人看的www欧美| 欧美福利视频在线观看| 亚洲视频自拍偷拍| 国产专区精品视频| 正在播放亚洲1区| 久久久久国产视频| 欧美老女人在线视频| 久久视频中文字幕| 久久高清视频免费| 国产综合视频在线观看| 亚洲成av人乱码色午夜| 51ⅴ精品国产91久久久久久| 欧美国产精品va在线观看| 欧美亚洲成人xxx| 亚洲乱码一区av黑人高潮| 欧美性感美女h网站在线观看免费| 国产成人涩涩涩视频在线观看| 国产精品国语对白| 91chinesevideo永久地址| 欧美巨猛xxxx猛交黑人97人| 色偷偷88888欧美精品久久久| 国产精品视频99| 成人h视频在线观看播放| 国产在线视频2019最新视频| 亚洲欧美一区二区激情| 日韩av在线免费播放| 66m—66摸成人免费视频| 久久九九全国免费精品观看| 2019中文在线观看| 97国产一区二区精品久久呦| 国产成人在线一区二区| 精品少妇v888av| 久久久午夜视频| 国产精品一区二区三区久久| 国产精品成人在线| 亚洲精品免费在线视频| 欧美日韩国产一区二区| 欧美专区在线观看| 日韩免费观看高清| 亚洲成在人线av| 久久久久99精品久久久久| 日本韩国欧美精品大片卡二| 亚洲精品一区二三区不卡| 亚洲精品国精品久久99热一| 国产亚洲精品一区二区| 国产午夜一区二区| 亚洲成年网站在线观看| 91精品国产高清自在线| 欧美激情国产日韩精品一区18| 久久久久久九九九| 国内免费精品永久在线视频| 久久久人成影片一区二区三区观看| 国产日韩欧美在线观看| 久久综合伊人77777蜜臀| 91视频国产精品| 92国产精品视频| 日韩欧美在线观看视频| 国产偷国产偷亚洲清高网站| 国产成人精品综合久久久| 精品国产乱码久久久久久婷婷| 国产又爽又黄的激情精品视频| 波霸ol色综合久久| 日韩在线精品视频| 欧美激情视频给我| 国产精品入口日韩视频大尺度| 国产精品美女主播在线观看纯欲| 大桥未久av一区二区三区| 国产日韩精品综合网站| 久久精品美女视频网站| 亚洲精品美女在线| 91精品国产777在线观看| 大胆欧美人体视频| 国产日韩中文在线| 26uuu亚洲国产精品| 色偷偷av一区二区三区乱| 欧美高清一级大片| 精品久久久久久中文字幕大豆网| 精品国产福利视频| 欧美性少妇18aaaa视频| 亚洲精品一区av在线播放| 亚洲高清免费观看高清完整版| 国产精品成人品| 国产精品第七影院| 亚洲国产另类久久精品| 亚洲人成网站999久久久综合| 国产精品久久久久久久av电影| 国产精品99久久99久久久二8| 热久久视久久精品18亚洲精品| 日韩av影院在线观看| 欧美激情精品久久久| 国产999精品久久久| 国产精品一久久香蕉国产线看观看| 国产91在线高潮白浆在线观看| 色偷偷亚洲男人天堂| 欧美日韩免费一区| 91精品国产综合久久香蕉的用户体验| 最新日韩中文字幕| 98精品国产高清在线xxxx天堂| 亚洲第一区中文99精品| 午夜欧美大片免费观看| 国产在线视频欧美| 91手机视频在线观看| 性色av香蕉一区二区| 狠狠色噜噜狠狠狠狠97| 欧美日韩中国免费专区在线看| 亚洲精品免费在线视频| 国外日韩电影在线观看| 尤物tv国产一区| 操91在线视频| 热久久美女精品天天吊色| 久久久久久综合网天天| 欧美日韩国产中文字幕| 成人网欧美在线视频| 亚洲第一精品福利| 在线丨暗呦小u女国产精品| 日韩av影院在线观看| 色婷婷综合久久久久| 国产香蕉精品视频一区二区三区|