繁体   English   中英

带有匿名功能的IE8 setTimeout

[英]IE8 setTimeout with Anonymous function

我有一个ajax代码,它根据收到的百分比更改div的宽度,然后再次循环该函数。 我安装它的方式现在可以在谷歌浏览器和FF中完美运行,但是在IE8(仅我已对其进行测试的IE8)中,它冻结在

这是调试器的屏幕截图。 它显示了当前正在处理的位置,并且从未离开过该位置。 我已将超时更改为1000,而1没有任何区别。

onSubmit是一个事件处理程序,您只将函数延迟了1毫秒,我的猜测是Chrome和FF忽略了此代码,而IE却因为IE愚蠢而失败。

编辑哦,是的,IE不会像其他任何人一样冒泡onSubmit,因为IE是愚蠢的。

此处的OP的EDIT2完整代码: http//pastebin.com/t8vdK8B2

显然, onSubmit是此代码中函数的名称,它也是事件处理程序。 由于函数不是多态的,因此应该覆盖,但是由于它是事件处理程序,所以我不确定。

编辑3

好的,因此此onSubmit函数应该可以正常工作,而不必保留事件处理程序,但是我建议更改此函数名称,您正在执行的操作是尝试将变量传递给setTimeout的函数,您可以这样执行:

setTimeout(onSubmit,1,id);

IE中的onSubmit事件不会冒泡,因此您需要将on Submit事件直接添加到表单中。 例如:

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

这是浏览器对Submit事件支持的详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM