You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by gu...@apache.org on 2017/09/26 04:25:17 UTC

[15/47] incubator-weex git commit: * [html5] fix click.

* [html5] fix click.


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

Branch: refs/heads/dev
Commit: 5bc585168ec5586901e1865a738ac521ec8a861b
Parents: 768b13a
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 21:37:14 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 21:37:14 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js               |  1 +
 html5/render/vue/core/node.js         |  2 +-
 html5/render/vue/env/event-manager.js | 17 +++++++++--------
 html5/render/vue/lib/gesture.js       |  2 +-
 4 files changed, 12 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index 6220025..693c241 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -74,6 +74,7 @@ module.exports = function (config) {
       '../html5/test/render/vue/!(utils|core)/*.js'
     ],
     exclude: [
+      '../html5/test/render/vue/core/node.js',
       '../html5/test/render/vue/helper/*.js',
       '../html5/test/render/vue/vender/**/*.js',
       '../html5/test/render/vue/data/**/*.js'

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/html5/render/vue/core/node.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/core/node.js b/html5/render/vue/core/node.js
index caf4230..d38cafd 100644
--- a/html5/render/vue/core/node.js
+++ b/html5/render/vue/core/node.js
@@ -85,7 +85,7 @@ export function createEventMap (context, ...events) {
            */
           let vm = context
           while (vm) {
-            const ons = getListeners(vm.$vnode, listenTo)
+            const ons = getListeners(vm._vnode || vm.$vnode, listenTo)
             const len = ons.length
             if (len > 0) {
               let idx = 0

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/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 7a074d5..3ecf618 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -88,25 +88,26 @@ function _init (doc) {
       const el = e.target
       let vm = el.__vue__
       let disposed = false
-
+      let evtName = e.type
       /**
        * take full control of redirection of <a> element.
        */
-      if (evt === 'click') {
+      if (evtName === 'click') {
         e.preventDefault()
+        return
       }
 
-      if (evt === 'tap' && evt._for !== 'weex') {
+      if (evtName === 'tap' && e._for !== 'weex') {
         return
       }
-      else if (evt === 'tap') {
-        evt = 'click'
+      else if (evtName === 'tap') {
+        evtName = 'click'
       }
 
       while (vm) {
-        const vnode = vm.$vnode || vm._vnode
+        const vnode = vm._vnode || vm.$vnode
         const elm = vm.$el
-        const ons = getListeners(vnode, evt)
+        const ons = getListeners(vnode, evtName)
         const len = ons && ons.length
 
         if (len > 0) {
@@ -129,7 +130,7 @@ function _init (doc) {
          * NOTE: if target==='_blank' then do no jumping and dispatch the
          * click event to document.body for further disposing.
          */
-        if (evt === 'click' && isANode(elm)) {
+        if (evtName === 'click' && isANode(elm)) {
           const href = elm.getAttribute('href')
           const target = elm.getAttribute('target')
           disposed = true

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/html5/render/vue/lib/gesture.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/lib/gesture.js b/html5/render/vue/lib/gesture.js
index 62ad226..5294cb2 100644
--- a/html5/render/vue/lib/gesture.js
+++ b/html5/render/vue/lib/gesture.js
@@ -70,7 +70,7 @@ function getCommonAncestor(el1, el2) {
  */
 function fireEvent(element, type, extra) {
   var event = doc.createEvent('HTMLEvents')
-  event.initEvent(type, false, true)
+  event.initEvent(type, true, true)
 
   if (typeof extra === 'object') {
     for (var p in extra) {