gpt4 book ai didi

javascript - 在匿名 settimeout javascript 函数中使用对象

转载 作者:行者123 更新时间:2023-12-02 19:47:09 24 4
gpt4 key购买 nike

我想在一段时间(1.5秒)后从页面中删除单击的元素。这是代码(包括一些背景信息):

function AttachEvent(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent('on' + type, handler)
} else {
element['on' + type] = handler;
}
}

AttachEvent(window, "load", function() {

AttachEvent(mydiv, "click", do_stuff);
});

function do_stuff(e){
e = e || window.event;
var target = e.target || e.srcElement;

//some stuff

//remove object
setTimeout('target.parentNode.removeChild(element);', 1500);
}

Internet Explorer 提示匿名函数中未定义目标。如何在 Internet Explorer 中设置此超时?

最佳答案

不要对 setTimeout 使用字符串。 Just don't 。相反,传递一个匿名函数( demo ):

function do_stuff(e){
e = e || window.event;
var target = e.target || e.srcElement;

//some stuff

//remove object
setTimeout(function(){target.parentNode.removeChild(target);}, 1500);
}

如果您使用上面的函数,target 的当前值将在匿名函数内部使用。如果您传递一个字符串,您的浏览器会查找名为 target全局对象,该对象将会失败,因为目标是一个函数作用域变量。

关于javascript - 在匿名 settimeout javascript 函数中使用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com