2012-02-27 94 views
0

我有一個ajax代碼,根據接收到的百分比更改div的寬度,然後再次循環該函數。我現在的設置方式現在可以在谷歌瀏覽器和FF中完美運行,但是在IE8中(只有IE已經測試過),它凍結在具有匿名函數的IE8 setTimeout

下面是調試器的屏幕快照。它顯示了它當前正在處理的位置,它永遠不會離開那個位置。我已將超時時間更改爲1000,1次沒有改變。

+0

onSubmit應該被連接到一個窗體。 – 2012-02-27 21:43:31

回答

0

onSubmit事件在IE中不會冒泡,因此您需要直接將提交事件添加到表單中。例如:

setTimeout(function(){document.getElementById("formToSubmit").onSubmit(upload_id); }, 1); 

Here are details瀏覽器支持提交事件。

1

onSubmit是一個事件處理程序,你只是延遲了1ms的功能,我的猜測是Chrome瀏覽器忽略了這段代碼,並且IE因爲IE很愚蠢而失敗。

編輯哦,嗯,IE不冒泡像其他人一樣提交,因爲IE是愚蠢的。對於OP這裏

EDIT2整個代碼:http://pastebin.com/t8vdK8B2

顯然onSubmit是這個代碼的函數的名稱,它也是一個事件處理程序。因爲函數不是多態的,所以應該覆蓋,但是因爲它是一個事件處理程序,所以我不確定。

編輯3

好了,所以這onSubmit功能應該工作,獨自離開事件處理程序,但我建議改變這個函數的名稱,它是什麼樣子,你正在做的是試圖通過一個變量在setTimeout內的功能,你可以這樣做:

setTimeout(onSubmit,1,id); 
+0

大聲笑對不起,我認爲我爲我的功能選擇了一個壞名字。這是整個代碼。 pastebin.com/t8vdK8B2 – 2012-02-27 21:50:55