50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
/* =========================================
|
|
URI: https://github.com/onokumus/metisMenu
|
|
|
|
=======================================*/
|
|
; (function ($, window, document, undefined) {
|
|
|
|
var pluginName = "metisMenu",
|
|
defaults = {
|
|
toggle: true
|
|
};
|
|
|
|
function Plugin(element, options) {
|
|
this.element = element;
|
|
this.settings = $.extend({}, defaults, options);
|
|
this._defaults = defaults;
|
|
this._name = pluginName;
|
|
this.init();
|
|
}
|
|
|
|
Plugin.prototype = {
|
|
init: function () {
|
|
|
|
var $this = $(this.element),
|
|
$toggle = this.settings.toggle;
|
|
|
|
$this.find('li.active').has('ul').children('ul').addClass('collapse in');
|
|
$this.find('li').not('.active').has('ul').children('ul').addClass('collapse');
|
|
|
|
$this.find('li').has('ul').children('a').on('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
$(this).parent('li').toggleClass('active').children('ul').collapse('toggle');
|
|
|
|
if ($toggle) {
|
|
$(this).parent('li').siblings().removeClass('active').children('ul.in').collapse('hide');
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
$.fn[ pluginName ] = function (options) {
|
|
return this.each(function () {
|
|
if (!$.data(this, "plugin_" + pluginName)) {
|
|
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
|
|
}
|
|
});
|
|
};
|
|
|
|
})(jQuery, window, document);
|