【发布时间】:2011-05-22 03:22:18
【问题描述】:
只是问题:有没有办法完全删除对象的所有事件,例如一个div?
编辑:我正在为每个 div.addEventListener('click',eventReturner(),false); 添加一个事件。
function eventReturner() {
return function() {
dosomething();
};
}
EDIT2:我找到了一种可行的方法,但无法用于我的情况:
var returnedFunction;
function addit() {
var div = document.getElementById('div');
returnedFunction = eventReturner();
div.addEventListener('click',returnedFunction,false); //You HAVE to take here a var and not the direct call to eventReturner(), because the function address must be the same, and it would change, if the function was called again.
}
function removeit() {
var div = document.getElementById('div');
div.removeEventListener('click',returnedFunction,false);
}
【问题讨论】:
-
如何附加事件?
-
标题询问对象的元素,而实际问题询问事件。您要删除子元素还是事件?
-
哦,天哪,那是因为我在写这篇文章时一直在考虑其他事情……我关心的是事件
-
我不知道确切的情况,但在某些情况下,作为一种解决方法,您可以使用“on*”方法(如 div.onclick = 函数),它始终适用于单个侦听器并且是易于删除为
div.onclick=null。当然,在这种情况下,您不应该完全使用addEventListener,因为它会添加一个与onclick中的侦听器不同的单独侦听器。
标签: javascript events dom