* [html5] fix accessing vm in doms without __vue__.

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/19f0c01c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/19f0c01c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/19f0c01c

Branch: refs/heads/dev
Commit: 19f0c01cfb3c5520a46a0b3ee77a137ded381321
Parents: 73d2f13
Author: MrRaindrop <tekk...@gmail.com>
Authored: Tue Sep 12 10:38:59 2017 +0800
Committer: MrRaindrop <tekk...@gmail.com>
Committed: Tue Sep 12 10:38:59 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/event-manager.js | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19f0c01c/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js 
b/html5/render/vue/env/event-manager.js
index 914981d..c2d714d 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -77,13 +77,17 @@ function _init (doc) {
       ? true : needPassive.indexOf(evt) > -1 && _sp
       ? { passive: true } : false
     doc.addEventListener(evt, function (e) {
-      const el = e.target
+      let el = e.target
       let vm = el.__vue__
-      let disposed = false
-      let evtName = e.type
+      while (!vm && el !== document.body) {
+        el = el.parentElement
+        vm = el.__vue__
+      }
       if (!vm) {  // not a vue component.
         return
       }
+      let disposed = false
+      let evtName = e.type
       /**
        * take full control of redirection of <a> element.
        */

Reply via email to