在匿名settimeout javascript函数中使用对象
Using an object in an anonymous settimeout javascript function
我想在一定时间(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
使用字符串。只是不要。相反,传递一个匿名函数(演示):
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模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 如何从onclick字符串中引用javascript对象函数
- 更改对象函数仅用于示例
- javascript和jQuery的嵌套对象函数中的变量范围
- 将对象函数传递给请求动画帧时丢失对象引用
- 对象函数返回函数而不是值
- 使用onclick调用属性对象函数
- javascript拉斐尔对象函数传递
- 如何从onClick事件调用对象函数
- 可以't获取具有“t”的对象变量;这个“;由setTimeout()函数调用的对象函数中的属性
- 对象没有't继承父对象函数
- 调用父对象函数
- "这个“;对象函数内部的引用
- 将变量添加到对象函数调用的末尾
- 传单错误:对象函数没有方法'createIcon'在LayerGroup中创建自定义图标标记时
- TypeError:对象函数Object(){〔本机代码〕}没有方法'方法'
- 挖空 - 单击绑定到对象函数 - 范围问题
- 类型错误: 对象函数...没有方法“打开”
- JavaScript 对象函数