2012-02-27 92 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