From 8e1bc93ce7c089762b2de9175da80327554cd010 Mon Sep 17 00:00:00 2001 From: sujayjaju Date: Mon, 7 Nov 2016 19:51:17 +0530 Subject: [PATCH] Drop menu fix for handling closeOnClickInside Fixes implementation of #9131 and includes a fix for #9293 --- js/foundation.dropdownMenu.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/js/foundation.dropdownMenu.js b/js/foundation.dropdownMenu.js index d3b6673d0..7f3f8346b 100644 --- a/js/foundation.dropdownMenu.js +++ b/js/foundation.dropdownMenu.js @@ -95,18 +95,23 @@ class DropdownMenu { _this._show($sub); $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true); } - } else { - if(_this.options.closeOnClickInside){ - _this._hide($elem); - } - return; } }; if (this.options.clickOpen || hasTouch) { this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn); } - + + // Handle Leaf element Clicks + if(_this.options.closeOnClickInside){ + this.$menuItems.on('click.zf.dropdownmenu touchend.zf.dropdownmenu', function(e) { + var hasSub = $elem.hasClass(parClass); + if(!hasSub){ + _this.hide(); + } + } + } + if (!this.options.disableHover) { this.$menuItems.on('mouseenter.zf.dropdownmenu', function(e) { var $elem = $(this), -- 2.47.3