【发布时间】:2026-01-25 00:40:01
【问题描述】:
使用 setTimeout 时拉入事件对象的最佳方式是什么?我正在使用 jQuery 来处理所有浏览器中的事件模型的规范化,但我不确定如何将“e”对象放入 checkPos 函数中。
我当前的代码:
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);
}
目前该代码只运行一次,因为该函数在 mousedown 事件中被调用,但不会在用户移动鼠标时更新 e 对象。 FF javascript 错误控制台还声明它是“无用的 setTimeout 调用(参数周围缺少引号?)”,但遵循该建议会导致它完全失败。
如何从 setTimeout 调用中提取“e”事件参数?
编辑:添加在每 500 毫秒重新运行一次 checkPos 函数的代码中
【问题讨论】:
-
使用您的代码,您实际上是在调用
setTimeout时调用checkPos(由于函数调用运算符())并将其返回值传递给setTimeout;该值可能不是对函数的引用,因此setTimeout失败。
标签: javascript jquery settimeout