Search code examples
javascripteventsaddeventlistener

Javascript removeEventListener not working


I have the following code to add eventListener

 area.addEventListener('click',function(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          },true);

It is working correctly as expected..Later in another function i tried to remove the event listener using the following code

 area.removeEventListener('click',function(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          },true);

But the even listener is not removed..Why is it happening?Is there any problem with my removeEventListener()? Note:Here area is something like document.getElementById('myId')


Solution

  • This is because the two anonymous functions are completely different functions. Your removeEventListener's argument is not a reference to the function object that was previously attached.

     function foo(event) {
         app.addSpot(event.clientX,event.clientY);
         app.addFlag = 1;
     }
     area.addEventListener('click',foo,true);
     area.removeEventListener('click',foo,true);