使用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