diff --git a/src/core/instance/events.js b/src/core/instance/events.js index 7908041a83b..469ef970b15 100644 --- a/src/core/instance/events.js +++ b/src/core/instance/events.js @@ -19,7 +19,7 @@ export function initEvents (vm: Component) { } } -let target: Component +let target: any function add (event, fn, once) { if (once) { @@ -40,6 +40,7 @@ export function updateComponentListeners ( ) { target = vm updateListeners(listeners, oldListeners || {}, add, remove, vm) + target = undefined } export function eventsMixin (Vue: Class) { diff --git a/src/platforms/web/runtime/modules/events.js b/src/platforms/web/runtime/modules/events.js index 103dfe0ba5e..1e71b667286 100644 --- a/src/platforms/web/runtime/modules/events.js +++ b/src/platforms/web/runtime/modules/events.js @@ -26,7 +26,7 @@ function normalizeEvents (on) { } } -let target: HTMLElement +let target: any function createOnceHandler (handler, event, capture) { const _target = target // save current target element in closure @@ -78,6 +78,7 @@ function updateDOMListeners (oldVnode: VNodeWithData, vnode: VNodeWithData) { target = vnode.elm normalizeEvents(on) updateListeners(on, oldOn, add, remove, vnode.context) + target = undefined } export default { diff --git a/src/platforms/weex/runtime/modules/events.js b/src/platforms/weex/runtime/modules/events.js index 824f08e6154..11b7edcfec8 100755 --- a/src/platforms/weex/runtime/modules/events.js +++ b/src/platforms/weex/runtime/modules/events.js @@ -46,6 +46,7 @@ function updateDOMListeners (oldVnode: VNodeWithData, vnode: VNodeWithData) { const oldOn = oldVnode.data.on || {} target = vnode.elm updateListeners(on, oldOn, add, remove, vnode.context) + target = undefined } export default {