diff options
Diffstat (limited to 'js/plugins/metisMenu/metisMenu.js')
-rw-r--r-- | js/plugins/metisMenu/metisMenu.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/js/plugins/metisMenu/metisMenu.js b/js/plugins/metisMenu/metisMenu.js new file mode 100644 index 0000000..9f8d627 --- /dev/null +++ b/js/plugins/metisMenu/metisMenu.js @@ -0,0 +1,72 @@ +/* + * metismenu - v1.0.3 + * Easy menu jQuery plugin for Twitter Bootstrap 3 + * https://github.com/onokumus/metisMenu + * + * Made by Osman Nuri Okumuş + * Under MIT License + */ +;(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; + + if (this.isIE() <= 9) { + $this.find("li.active").has("ul").children("ul").collapse("show"); + $this.find("li").not(".active").has("ul").children("ul").collapse("hide"); + } else { + $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"); + } + }); + }, + + isIE: function() {//https://gist.github.com/padolsey/527683 + var undef, + v = 3, + div = document.createElement("div"), + all = div.getElementsByTagName("i"); + + while ( + div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->", + all[0] + ) { + return v > 4 ? v : undef; + } + } + }; + + $.fn[ pluginName ] = function (options) { + return this.each(function () { + if (!$.data(this, "plugin_" + pluginName)) { + $.data(this, "plugin_" + pluginName, new Plugin(this, options)); + } + }); + }; + +})(jQuery, window, document); |