From 7dbf07242083ac783595dab345dc9c41a54a6357 Mon Sep 17 00:00:00 2001 From: Louis Yu Date: Mon, 27 Mar 2017 11:16:25 +0800 Subject: [PATCH] feat: added syncEvent module --- react/syncEvent.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 react/syncEvent.js diff --git a/react/syncEvent.js b/react/syncEvent.js new file mode 100644 index 0000000..0292b83 --- /dev/null +++ b/react/syncEvent.js @@ -0,0 +1,17 @@ +module.exports = function syncEvent(node, eventName, newEventHandler) { + var eventNameLc = eventName[0].toLowerCase() + eventName.substring(1); + var eventStore = node.__events || (node.__events = {}); + var oldEventHandler = eventStore[eventNameLc]; + + // Remove old listener so they don't double up. + if (oldEventHandler) { + node.removeEventListener(eventNameLc, oldEventHandler); + } + + // Bind new listener. + if (newEventHandler) { + node.addEventListener(eventNameLc, eventStore[eventNameLc] = function handler(e) { + newEventHandler.call(this, e); + }); + } +}