UNPKG

vpn.email

Version:
77 lines (62 loc) 2.41 kB
$.widget("metro.panel", { version: "3.0.0", options: { onExpand: function(panel){}, onCollapse: function(panel){} }, _create: function(){ var element = this.element, o = this.options; $.each(element.data(), function(key, value){ if (key in o) { try { o[key] = $.parseJSON(value); } catch (e) { o[key] = value; } } }); if (!element.hasClass('collapsible')) {element.addClass('collapsible');} if (element.hasClass("collapsible")) { var toggle = element.children(".heading"); var content = element.children(".content"); toggle.on("click", function(){ var result; if (element.hasClass("collapsed")) { content.slideDown('fast', function(){ element.removeClass('collapsed'); if (typeof o.onExpand === 'function') { o.onExpand(element); } else { if (typeof window[o.onExpand] === 'function') { window[o.onExpand](element); } else { result = eval("(function(){"+o.onExpand+"})"); result.call(element); } } }); } else { content.slideUp('fast', function(){ element.addClass('collapsed'); if (typeof o.onCollapse === 'function') { o.onCollapse(element); } else { if (typeof window[o.onCollapse] === 'function') { window[o.onCollapse](element); } else { result = eval("(function(){"+o.onCollapse+"})"); result.call(element); } } }); } }); } element.data('panel', this); }, _destroy: function(){ }, _setOption: function(key, value){ this._super('_setOption', key, value); } });