//{ id, text, parentId?, href?, hrefTarget?, icon, iconCls, cls, expanded, children } var Menu_Id = 1; var Menu = function (element, options) { this.element = $(element); this.options = $.extend(true, {}, this.options, options); this.init(); } var open_li = null; var open_el = null; var sel_li = null; Menu.prototype = { options: { data: null, itemclick: null }, loadData: function (data) { this.options.data = data || []; this.refresh(); }, refresh: function () { this._render(); }, init: function () { var me = this, opt = me.options, el = me.element; //el.addClass('menu'); me.loadData(opt.data); el.on('click', '.menu-title', function (event) { var el = $(event.currentTarget); var li = el.parent(); var item = me.getItemByEvent(event); //alert(item); // me.toggleItem(item); //alert(li + "," + open_li); //if (open_li.getAttribute("data-id") == li.getAttribute("data-id")) { // li.toggleClass('open'); //} else { // if (open_li != null) { // if(open_li.attr("data-id") == li.attr("data-id")) // open_li.toggleClass('open'); // } // else li.toggleClass('open'); // open_li = li; //} if (open_el != null) { if (open_el.attr("data-id") == el.attr("data-id")) { open_li.toggleClass("open"); open_li = null; open_el = null; return; } open_li.toggleClass("open"); open_li = null; open_el = null; } li.toggleClass('open'); open_li = li; open_el = el; //li.toggleClass('open'); if (opt.itemclick) opt.itemclick.call(me, item); }); el.on('click', '.menu-sec-title', function (event) { var el = $(event.currentTarget); var li = el.parent(); var item = me.getSecItemByEvent(event); //alert(item); // me.toggleItem(item); if (sel_li != null) sel_li.toggleClass('sel'); li.toggleClass('sel'); sel_li = li; if (opt.itemclick) opt.itemclick.call(me, item); }); }, _render: function () { var data = this.options.data || []; var html = this._renderItems(data, null); this.element.html(html); }, _renderItems: function (items, parent) { var s = '