From 7ed50690a25035ff1d1798544bb33a79f2827644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Sobo=C5=84?= Date: Wed, 13 Apr 2016 15:21:30 +0200 Subject: [PATCH] UI fix for multiple dropdowns inside the same context --- modules/system/assets/ui/js/dropdown.js | 8 ++++++-- modules/system/assets/ui/storm-min.js | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/system/assets/ui/js/dropdown.js b/modules/system/assets/ui/js/dropdown.js index db737128d..44544309f 100644 --- a/modules/system/assets/ui/js/dropdown.js +++ b/modules/system/assets/ui/js/dropdown.js @@ -8,12 +8,16 @@ */ +function ($) { "use strict"; - $(document).on('shown.bs.dropdown', '.dropdown', function() { + $(document).on('shown.bs.dropdown', '.dropdown', function(event, relatedTarget) { $(document.body).addClass('dropdown-open') - var dropdown = $('.dropdown-menu', this), + var dropdown = $(relatedTarget.relatedTarget).siblings('.dropdown-menu'), dropdownContainer = $(this).data('dropdown-container') + if (dropdown.length === 0){ + dropdown = $('.dropdown-menu', this) + } + if ($('.dropdown-container', dropdown).length == 0) { var title = $('[data-toggle=dropdown]', this).text(), diff --git a/modules/system/assets/ui/storm-min.js b/modules/system/assets/ui/storm-min.js index 9393eb2ba..3025220e9 100644 --- a/modules/system/assets/ui/storm-min.js +++ b/modules/system/assets/ui/storm-min.js @@ -1943,8 +1943,9 @@ if(!data)$this.data('oc.balloon-selector',(data=new BalloonSelector(this,options $.fn.balloonSelector.Constructor=BalloonSelector $.fn.balloonSelector.noConflict=function(){$.fn.balloonSelector=old return this} -$(document).on('render',function(){$('div[data-control=balloon-selector]').balloonSelector()})}(window.jQuery);+function($){"use strict";$(document).on('shown.bs.dropdown','.dropdown',function(){$(document.body).addClass('dropdown-open') -var dropdown=$('.dropdown-menu',this),dropdownContainer=$(this).data('dropdown-container') +$(document).on('render',function(){$('div[data-control=balloon-selector]').balloonSelector()})}(window.jQuery);+function($){"use strict";$(document).on('shown.bs.dropdown','.dropdown',function(event,relatedTarget){$(document.body).addClass('dropdown-open') +var dropdown=$(relatedTarget.relatedTarget).siblings('.dropdown-menu'),dropdownContainer=$(this).data('dropdown-container') +if(dropdown.length===0){dropdown=$('.dropdown-menu',this)} if($('.dropdown-container',dropdown).length==0){var title=$('[data-toggle=dropdown]',this).text(),titleAttr=dropdown.data('dropdown-title'),timer=null if(titleAttr!==undefined) title=titleAttr