From a400cbace8fe1384acbec243d0ee415b31c7e49a Mon Sep 17 00:00:00 2001 From: hangboss1761 <1240123692@qq.com> Date: Fri, 6 May 2022 16:23:55 +0800 Subject: [PATCH] fix(cdk:click-outside): not working when click target has @click.stop (#887) --- .../cdk/click-outside/src/useClickOutside.ts | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/cdk/click-outside/src/useClickOutside.ts b/packages/cdk/click-outside/src/useClickOutside.ts index e5bdf93b9..b31e2162e 100644 --- a/packages/cdk/click-outside/src/useClickOutside.ts +++ b/packages/cdk/click-outside/src/useClickOutside.ts @@ -27,15 +27,20 @@ interface DocumentHandlerOptions { const documentHandlerMap = new Map() -on(document, 'click', event => { - documentHandlerMap.forEach(({ exclude, handler }) => { - const target = event.target as Node - if (exclude.some(item => item === target || item.contains(target))) { - return - } - handler(event) - }) -}) +on( + document, + 'click', + event => { + documentHandlerMap.forEach(({ exclude, handler }) => { + const target = event.target as Node + if (exclude.some(item => item === target || item.contains(target))) { + return + } + handler(event) + }) + }, + { capture: true }, +) function createHandler(el: HTMLElement, binding: ClickOutsideBinding): void { const exclude: HTMLElement[] = [el]