如何实现导航菜单的二级折叠功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1212个文字,预计阅读时间需要5分钟。
javascriptfunction (require) { var ClassEvent=require(/classevent); var Extend=require(/extend); // 用于生成只有两级的可折叠菜单 function AccordionMenu(setting) { // ... }}
define(function (require) { var ClassEvent = require("./classevent"); var Extend = require("./extend"); //var $ = require("jquery"); /** * 用于生成只有两级的可折叠的菜单 */ function AccordionMenu(setting) { ClassEvent.call(this); this.setting = setting; this.accordin = null; } AccordionMenu.prototype.Init = function () { this.accordin = this.initAccordin(); return this; } AccordionMenu.prototype.GetAccordionDom = function () { return this.accordin; } AccordionMenu.prototype.CloseItem = function (parm) { this.accordin.accordion("close", parm); } AccordionMenu.prototype.OpenItem = function (parm) { this.accordin.accordion("open", parm); } /** * 获取展开的item */ AccordionMenu.prototype.GetExtendData = function () { return this.accordin.find($.fn.accordion.settings.selector.title + "." + $.fn.accordion.settings.className.active).data("accordinitemtitle"); } AccordionMenu.prototype.GetExtendContent = function () { return this.accordin.find($.fn.accordion.settings.selector.content + "." + $.fn.accordion.settings.className.active) } AccordionMenu.prototype.GetExtendTitle = function () { return this.accordin.find($.fn.accordion.settings.selector.title + "." + $.fn.accordion.settings.className.active) } //onOpening : function(){}, // callback before open animation //onOpen : function(){}, // callback after open animation //onClosing : function(){}, // callback before closing animation //onClose : function(){}, // callback after closing animation //onChange : function(){}, // callback after closing or opening animation AccordionMenu.prototype.initAccordin = function () { var self = this; var acc = $("
///
/// /// /// define(function (require) { //var $ = require("jquery"); var ClassEvent = require("./classevent"); var AccordionMenu = require("./accordionmenu"); var Extend = require("./extend"); /** * 滚动监听 */ function ScrollNav(setting) { ClassEvent.call(this); this.accordinMenu = null; this.setting = setting; } ScrollNav.prototype.Init = function () { this.initAccordionMenu(); this.initScroll(); this.initEvent(); return this; } ScrollNav.prototype.initScroll = function () { $(this.setting.Listener).scrollspy({ target: this.setting.navContainer, offset: this.setting.offset }); } ScrollNav.prototype.initAccordionMenu = function () { var self = this; this.accordinMenu = new AccordionMenu({ Data: this.setting.Data }).Init(); this.accordinMenu.GetAccordionDom().addClass("nav"); $(this.setting.NavContainer).append(this.accordinMenu.GetAccordionDom()); } ScrollNav.prototype.initEvent = function () { var self = this; this.accordinMenu.RegistEvent("Opening", function (sender, event, option) { self.ExcuteEvent("ScrollNavOpen", self, { item: event.item }) }, this); this.accordinMenu.RegistEvent("LinkClick", function (sender, event, option) { self.ExcuteEvent("LinkClick", self, event) }, this); $(this.setting.Listener).on('activate.bs.scrollspy', function () { self.ExcuteEvent("Active", self, {}); }) } ScrollNav.prototype.Refresh = function () { $(this.setting.Listener).scrollspy('refresh'); $(this.setting.Listener).scrollspy('process'); } ScrollNav.prototype.RePosition = function () { //根据hash进行重新定位 this.setting.navContainer.find('a[href="' + location.hash + '"]'); } ScrollNav.prototype.Destroy = function () { this.accordinMenu.Destroy(); $(this.setting.Listener).scrollspy("destroy"); } ScrollNav.prototype.OpenItem = function (parm) { this.accordinMenu.OpenItem(); } ScrollNav.prototype.CloseItem = function (parm) { this.accordinMenu.CloseItem(arguments); } ScrollNav.prototype.GetExtendData = function () { return this.accordinMenu.GetExtendData(); } ScrollNav.prototype.GetActiveItemData = function () { return this.accordinMenu.GetExtendContent().children(".active").data("itemdata"); } ScrollNav.prototype = Extend({}, ClassEvent.prototype, ScrollNav.prototype); })
本文共计1212个文字,预计阅读时间需要5分钟。
javascriptfunction (require) { var ClassEvent=require(/classevent); var Extend=require(/extend); // 用于生成只有两级的可折叠菜单 function AccordionMenu(setting) { // ... }}
define(function (require) { var ClassEvent = require("./classevent"); var Extend = require("./extend"); //var $ = require("jquery"); /** * 用于生成只有两级的可折叠的菜单 */ function AccordionMenu(setting) { ClassEvent.call(this); this.setting = setting; this.accordin = null; } AccordionMenu.prototype.Init = function () { this.accordin = this.initAccordin(); return this; } AccordionMenu.prototype.GetAccordionDom = function () { return this.accordin; } AccordionMenu.prototype.CloseItem = function (parm) { this.accordin.accordion("close", parm); } AccordionMenu.prototype.OpenItem = function (parm) { this.accordin.accordion("open", parm); } /** * 获取展开的item */ AccordionMenu.prototype.GetExtendData = function () { return this.accordin.find($.fn.accordion.settings.selector.title + "." + $.fn.accordion.settings.className.active).data("accordinitemtitle"); } AccordionMenu.prototype.GetExtendContent = function () { return this.accordin.find($.fn.accordion.settings.selector.content + "." + $.fn.accordion.settings.className.active) } AccordionMenu.prototype.GetExtendTitle = function () { return this.accordin.find($.fn.accordion.settings.selector.title + "." + $.fn.accordion.settings.className.active) } //onOpening : function(){}, // callback before open animation //onOpen : function(){}, // callback after open animation //onClosing : function(){}, // callback before closing animation //onClose : function(){}, // callback after closing animation //onChange : function(){}, // callback after closing or opening animation AccordionMenu.prototype.initAccordin = function () { var self = this; var acc = $("
///
/// /// /// define(function (require) { //var $ = require("jquery"); var ClassEvent = require("./classevent"); var AccordionMenu = require("./accordionmenu"); var Extend = require("./extend"); /** * 滚动监听 */ function ScrollNav(setting) { ClassEvent.call(this); this.accordinMenu = null; this.setting = setting; } ScrollNav.prototype.Init = function () { this.initAccordionMenu(); this.initScroll(); this.initEvent(); return this; } ScrollNav.prototype.initScroll = function () { $(this.setting.Listener).scrollspy({ target: this.setting.navContainer, offset: this.setting.offset }); } ScrollNav.prototype.initAccordionMenu = function () { var self = this; this.accordinMenu = new AccordionMenu({ Data: this.setting.Data }).Init(); this.accordinMenu.GetAccordionDom().addClass("nav"); $(this.setting.NavContainer).append(this.accordinMenu.GetAccordionDom()); } ScrollNav.prototype.initEvent = function () { var self = this; this.accordinMenu.RegistEvent("Opening", function (sender, event, option) { self.ExcuteEvent("ScrollNavOpen", self, { item: event.item }) }, this); this.accordinMenu.RegistEvent("LinkClick", function (sender, event, option) { self.ExcuteEvent("LinkClick", self, event) }, this); $(this.setting.Listener).on('activate.bs.scrollspy', function () { self.ExcuteEvent("Active", self, {}); }) } ScrollNav.prototype.Refresh = function () { $(this.setting.Listener).scrollspy('refresh'); $(this.setting.Listener).scrollspy('process'); } ScrollNav.prototype.RePosition = function () { //根据hash进行重新定位 this.setting.navContainer.find('a[href="' + location.hash + '"]'); } ScrollNav.prototype.Destroy = function () { this.accordinMenu.Destroy(); $(this.setting.Listener).scrollspy("destroy"); } ScrollNav.prototype.OpenItem = function (parm) { this.accordinMenu.OpenItem(); } ScrollNav.prototype.CloseItem = function (parm) { this.accordinMenu.CloseItem(arguments); } ScrollNav.prototype.GetExtendData = function () { return this.accordinMenu.GetExtendData(); } ScrollNav.prototype.GetActiveItemData = function () { return this.accordinMenu.GetExtendContent().children(".active").data("itemdata"); } ScrollNav.prototype = Extend({}, ClassEvent.prototype, ScrollNav.prototype); })

