使用setTimeout时拉入事件对象的最佳方法是什么?我使用jQuery来处理所有浏览器中的事件模型规范化,但我不知道如何让'e'对象进入checkPos函数。带事件参数的Javascript setTimeout函数调用?
我当前的代码:
function MouseDownEvent(e) {
*snip*
timeoutID = setTimeout(checkPos(e), 500);
}
function checkPos(e) {
//function uses e on a timeout of 500ms
timeoutID = setTimeout(checkPos(e) }, 500);
}
目前因为函数被调用鼠标按下事件代码工作一次,但随着用户移动鼠标永远不会更新电子对象。 FF的JavaScript错误控制台也声明它是'一个无用的setTimeout调用(缺少引号围绕参数?)',但随后的建议导致它完全失败。
如何从setTimeout调用中引入'e'事件参数?
编辑:添加在重新运行checkPos功能每500ms
你的代码,你实际上调用`checkPos`打电话时`setTimeout`(由于函数调用操作符`()`)和它的返回值传递给` setTimeout`;该值可能不是对函数的引用,所以`setTimeout`失败。 – 2010-11-30 13:48:29