javascript - Removing event listeners -
javascript - Removing event listeners -
i have canvas element in draw using webgl. depending on drawn adding event listener.
now when redrawing canvas, want remove old event listener , add together new one.
simply doing not work:
canvas.removeeventlistener("click", function(event){ colorbarclicked(event, viewdata); }, false); canvas.addeventlistener("click", function(event){ colorbarclicked(event, viewdata); }, false);
i think because colorbarclicked function has changed (maybe because parameters have different values?) , not matching old 1 want remove more.
so problem each time redrawing event listeners added , hence doubled. colorbarclicked function depends on drawn in canvas, need alter it.
you need remember function used when adding, , utilize same function 1 time again when removing:
// somewhere *outside* code doing adding/removing (in containing code) var listener = null; // in code adding/removing if (listener) { canvas.removeeventlistener("click", listener, false); } listener = function(event){ colorbarclicked(event, viewdata); }; canvas.addeventlistener("click", listener, false);
side note: adding , removing handler every time seems awkward. normally, you'd want add together handler once, , have respond whatever changes make.
javascript canvas addeventlistener event-listener
Comments
Post a Comment