summaryrefslogtreecommitdiffstats
path: root/src/event.js
diff options
context:
space:
mode:
authorwout <wout@impinc.co.uk>2014-06-12 10:37:26 +0200
committerwout <wout@impinc.co.uk>2014-06-12 10:37:26 +0200
commitfaefee422ac98e4d5378174d3681d825a899ca5d (patch)
tree4e1823ceaf62519085f1adb3b6b2d946c4dff30f /src/event.js
parentd00bb30f8afbd99d4aa697466f908adf6501c0ae (diff)
downloadsvg.js-faefee422ac98e4d5378174d3681d825a899ca5d.tar.gz
svg.js-faefee422ac98e4d5378174d3681d825a899ca5d.zip
Fix in SVG.off
Diffstat (limited to 'src/event.js')
-rwxr-xr-xsrc/event.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/event.js b/src/event.js
index 885eab8..8430fa0 100755
--- a/src/event.js
+++ b/src/event.js
@@ -27,8 +27,9 @@
})
-// Initialize events stack
+// Initialize events and listeners stack
SVG.events = {}
+SVG.listeners = {}
// Event constructor
SVG.registerEvent = function(event) {
@@ -38,12 +39,15 @@ SVG.registerEvent = function(event) {
// Add event binder in the SVG namespace
SVG.on = function(node, event, listener) {
- node.addEventListener(event, listener.bind(node.instance || node), false)
+ var l = listener.bind(node.instance || node)
+ SVG.listeners[listener] = l
+ node.addEventListener(event, l, false)
}
// Add event unbinder in the SVG namespace
SVG.off = function(node, event, listener) {
- node.removeEventListener(event, listener.bind(node.instance || node), false)
+ node.removeEventListener(event, SVG.listeners[listener], false)
+ delete SVG.listeners[listener]
}
//