vendor/assets/javascripts/metro-ui/dropdown.js in metro-ui-rails-0.15.8.14 vs vendor/assets/javascripts/metro-ui/dropdown.js in metro-ui-rails-0.15.8.15

- old
+ new

@@ -10,21 +10,30 @@ $(".dropdown-menu").each(function(){ if ( $(this).css('position') == 'static' ) return; $(this).slideUp('fast', function(){}); $(this).parent().removeClass("active"); }); - } + }; var initSelectors = function(selectors){ - selectors.on('click', function(e){ - e.stopPropagation(); + selectors.off("click.dropdown"); + selectors.on('click.dropdown', function(e){ + //e.stopPropagation(); //$("[data-role=dropdown]").removeClass("active"); + if($(e.originalEvent.target).parent().is("[data-role]")) e.stopPropagation(); clearDropdown(); $(this).parents("ul").css("overflow", "visible"); var $m = $(this).children(".dropdown-menu, .sidebar-dropdown-menu"); + $(this).parents("ul").children(".dropdown").children(".dropdown-menu, .sidebar-dropdown-menu").each(function(){ + if(!$(this).hasClass("keep-opened") && !$m.hasClass("keep-opened")) { + $(this).slideUp('fast'); + $(this).parents("li").removeClass("active"); + } + }); + if ($m.css('display') == "block") { $m.slideUp('fast'); $(this).removeClass("active"); } else { $m.slideDown('fast'); @@ -32,28 +41,29 @@ } }).on("mouseleave", function(){ //$(this).children(".dropdown-menu").hide(); }); $('html').on("click", function(e){ - clearDropdown(); + if(e.originalEvent && $(e.originalEvent.target).parents('[data-role="dropdown"]').length == 0) + clearDropdown(); }); - } + }; return this.each(function(){ if ( options ) { - $.extend(defaults, options) + $.extend(defaults, options); } initSelectors($this); }); - } + }; $(function () { $('[data-role="dropdown"]').each(function () { $(this).Dropdown(); - }) - }) + }); + }); })(window.jQuery); (function($){ $.fn.PullDown = function( options ){ @@ -74,22 +84,22 @@ } else { $m.slideDown('fast'); } //$(this).toggleClass("active"); }); - } + }; return this.each(function(){ if ( options ) { - $.extend(defaults, options) + $.extend(defaults, options); } initSelectors($this); }); - } + }; $(function () { $('.pull-menu, .menu-pull').each(function () { $(this).PullDown(); - }) - }) -})(window.jQuery); \ No newline at end of file + }); + }); +})(window.jQuery);