Javascript removeeventlistner不在按钮单击上工作

Javascript removeeventlistner不在按钮单击上工作,javascript,html,Javascript,Html,document.getElementById('divv').addEventListener(“单击”,func) 函数func(a){ 警报(“oooo”); } 函数abc(){ document.getElementById('divv')。removeEventListener(“单击”,function(){func()}); } 我是维韦克 删除,如下所示: document.getElementById('divv').removeEventListener("click",

document.getElementById('divv').addEventListener(“单击”,func)
函数func(a){
警报(“oooo”);
}
函数abc(){
document.getElementById('divv')。removeEventListener(“单击”,function(){func()});
}
我是维韦克
删除
,如下所示:

document.getElementById('divv').removeEventListener("click", func);
请参阅有关的说明

document.getElementById('divv').addEventListener(“单击”,func)
函数func(a){
警报(“oooo”);
}
函数abc(){
document.getElementById('divv')。removeEventListener(“单击”,func);
}
我是维韦克

删除
您没有添加和删除同一个函数,这就是它不起作用的原因

您是这样添加的:
.addEventListener(“单击”,func”)

您正在这样删除:
.removeEventListener(“单击”,function(){func()})

func
function(){func()}
调用时不引用相同的函数,即使它们具有相同的结果

您需要以与删除完全相同的方式删除;否则删除将无法“找到”您添加的原始函数:

function abc(){
    document.getElementById('divv').removeEventListener("click",func);
}

是的,
removeEventListener
不是这样工作的。请附加一个命名函数(声明的或分配给变量的)作为事件侦听器,并在删除侦听器时引用同一个命名函数。该函数可能重复