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