From 2057604e24a233717f3d4646b87ff267a25d32c8 Mon Sep 17 00:00:00 2001 From: Leopoldthecoder Date: Tue, 12 Sep 2017 11:56:09 +0800 Subject: [PATCH] Tooltip: avoid adding handler repeatedly --- packages/tooltip/src/main.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/tooltip/src/main.js b/packages/tooltip/src/main.js index 146d69a38..be2993358 100644 --- a/packages/tooltip/src/main.js +++ b/packages/tooltip/src/main.js @@ -42,6 +42,12 @@ export default { } }, + data() { + return { + handlerAdded: false + }; + }, + beforeCreate() { if (this.$isServer) return; @@ -77,7 +83,7 @@ export default { if (!this.$slots.default || !this.$slots.default.length) return this.$slots.default; const vnode = getFirstComponentChild(this.$slots.default); - if (!vnode) return vnode; + if (!vnode || this.handlerAdded) return vnode; const data = vnode.data = vnode.data || {}; const on = vnode.data.on = vnode.data.on || {}; const nativeOn = vnode.data.nativeOn = vnode.data.nativeOn || {}; @@ -97,6 +103,7 @@ export default { methods: { addEventHandle(old, fn) { + this.handlerAdded = true; return old ? Array.isArray(old) ? old.concat(fn) : [old, fn] : fn; },