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

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -