From 3e44c9234c19f14e270ccbb4abbbc9c0818ccea7 Mon Sep 17 00:00:00 2001 From: Tomas Sardyha Date: Sat, 3 Dec 2016 11:57:46 +0100 Subject: [PATCH] Improve event binding --- render/render.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/render/render.js b/render/render.js index 9a579a66..9ee2628e 100644 --- a/render/render.js +++ b/render/render.js @@ -515,15 +515,16 @@ module.exports = function($window) { //event function updateEvent(vnode, key, value) { var element = vnode.dom - var callback = function(e) { + var callback = typeof onevent !== "function" ? value : function(e) { var result = value.call(element, e) - if (typeof onevent === "function") onevent.call(element, e) + onevent.call(element, e) return result } if (key in element) element[key] = typeof value === "function" ? callback : null else { var eventName = key.slice(2) if (vnode.events === undefined) vnode.events = {} + if (vnode.events[key] === callback) return if (vnode.events[key] != null) element.removeEventListener(eventName, vnode.events[key], false) if (typeof value === "function") { vnode.events[key] = callback