From: Nicolas Coden Date: Tue, 24 Jul 2018 22:07:25 +0000 (+0200) Subject: fix: prevent Dropdown and Tooltip to hide when moving mouse to browser UI elements X-Git-Tag: v6.6.0~3^2~95^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f46e78bd1;p=thirdparty%2Ffoundation%2Ffoundation-sites.git fix: prevent Dropdown and Tooltip to hide when moving mouse to browser UI elements See https://git.io/zf-11410 --- diff --git a/js/foundation.dropdown.js b/js/foundation.dropdown.js index 85f605e6f..08e13b097 100644 --- a/js/foundation.dropdown.js +++ b/js/foundation.dropdown.js @@ -2,7 +2,7 @@ import $ from 'jquery'; import { Keyboard } from './foundation.util.keyboard'; -import { GetYoDigits } from './foundation.core.utils'; +import { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils'; import { Positionable } from './foundation.positionable'; import { Triggers } from './foundation.util.triggers'; @@ -170,24 +170,24 @@ class Dropdown extends Positionable { _this.$anchors.data('hover', true); }, _this.options.hoverDelay); } - }).on('mouseleave.zf.dropdown', function(){ + }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){ clearTimeout(_this.timeout); _this.timeout = setTimeout(function(){ _this.close(); _this.$anchors.data('hover', false); }, _this.options.hoverDelay); - }); + })); if(this.options.hoverPane){ this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown') .on('mouseenter.zf.dropdown', function(){ clearTimeout(_this.timeout); - }).on('mouseleave.zf.dropdown', function(){ + }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){ clearTimeout(_this.timeout); _this.timeout = setTimeout(function(){ _this.close(); _this.$anchors.data('hover', false); }, _this.options.hoverDelay); - }); + })); } } this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) { diff --git a/js/foundation.tooltip.js b/js/foundation.tooltip.js index 41f99d4fb..0bcf3c108 100644 --- a/js/foundation.tooltip.js +++ b/js/foundation.tooltip.js @@ -2,7 +2,7 @@ import $ from 'jquery'; -import { GetYoDigits } from './foundation.core.utils'; +import { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils'; import { MediaQuery } from './foundation.util.mediaQuery'; import { Triggers } from './foundation.util.triggers'; import { Positionable } from './foundation.positionable'; @@ -208,12 +208,12 @@ class Tooltip extends Positionable { }, _this.options.hoverDelay); } }) - .on('mouseleave.zf.tooltip', function(e) { + .on('mouseleave.zf.tooltip', ignoreMousedisappear(function(e) { clearTimeout(_this.timeout); if (!isFocus || (_this.isClick && !_this.options.clickOpen)) { _this.hide(); } - }); + })); } if (hasTouch) {