[Javascript] - removeEventlistener无法正常工作,有什么问题?

时间:2014-03-29 11:02:20

标签: javascript

function circlediv(x,y,event)
{   
var par=document.getElementById('fine');    
var sull;
sull=document.createElement('div');
par.insertBefore(sull,par.firstChild);
sull.id='sullji';
sull.style.position='absolute';
sull.style.left=x+'px';
sull.style.top=y+'px';
sull.style.backgroundColor='black';
par.addEventListener("mousemove",function(){ dimer();},false);

}

function dimer()
{
sull=document.getElementById('sullji'); 
var l=sull.style.left.replace("px","");
var t=sull.style.top.replace("px","");
var w=event.pageX-Number(l); var h=event.pageY-Number(t);
sull.style.width=w+'px'; sull.style.height= h+'px';
}

function removeer()
{
var par2=document.getElementById('fine');   
par2.removeEventListener("mousemove",function(){ dimer();},false);
}

我正在尝试删除我添加到par元素的事件Listener,但无法执行此操作。请帮忙。 在此先感谢:)

2 个答案:

答案 0 :(得分:0)

很简单:

par.addEventListener("mousemove", dimer, false);

par2.removeEventListener("mousemove",dimer ,false);

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.removeEventListener

答案 1 :(得分:0)

您当前在.removeEventListener()的第二个参数中传递的功能与您使用.addEventListener()添加的功能不同。这两个函数都做同样的事情,但它们彼此不同......你需要传递对相同函数的引用,所以不要使用匿名函数。

实际上在这种情况下你实际上并不需要匿名函数,因为它唯一能做的就是调用dimer()函数,所以:

par.addEventListener("mousemove", dimer, false);


par2.removeEventListener("mousemove", dimer, false);