From 1a486f277f0f5688c83e80fd5dd02bccf8727ac0 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 29 Apr 2019 01:02:09 +0200 Subject: [PATCH] fix: check for contains before requestAnimationFrame, closes #253 --- src/components/Popover.vue | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/Popover.vue b/src/components/Popover.vue index 38a6e5be..99399da3 100644 --- a/src/components/Popover.vue +++ b/src/components/Popover.vue @@ -674,17 +674,16 @@ function handleGlobalTouchend (event) { function handleGlobalClose (event, touch = false) { // Delay so that close directive has time to set values - requestAnimationFrame(() => { - let popover - for (let i = 0; i < openPopovers.length; i++) { - popover = openPopovers[i] - if (popover.$refs.popover) { - const contains = popover.$refs.popover.contains(event.target) + for (let i = 0; i < openPopovers.length; i++) { + let popover = openPopovers[i] + if (popover.$refs.popover) { + const contains = popover.$refs.popover.contains(event.target) + requestAnimationFrame(() => { if (event.closeAllPopover || (event.closePopover && contains) || (popover.autoHide && !contains)) { popover.$_handleGlobalClose(event, touch) } - } + }) } - }) + } }