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); + }); + } +}