我的页面中有以下代码,适用于所有浏览器(即使在IE9上),但在IE7和IE8上没有:
$.each($('.cic img'), function(index, value) {
$(this).load(function() {
// infinite loop here in IE7 and IE8
});
});
HTML是:
<div class="cic">
<img wicket:id="image1" class="image1" />
</div>
...
<div class="cic">
<img wicket:id="image2" class="image2" />
</div>
原因是在IE7和IE8上,加载功能进入无限循环,我最终得到的消息是:“由于脚本运行时间较长,此页面没有响应”。
编辑:将选择器更改为$('。cic img')。each()没有帮助。我还确认loadImageCropper()不是问题的原因。我也在上面的脚本之前键入$('。cic img')。lenght,它返回2,这是正确的。
上面的脚本和HTML正在加载AJAX。
我会感激任何帮助! 提前谢谢!
答案 0 :(得分:0)
与script element,IE8和fire old readyStateChange事件一样,而不是img src更新的标准加载事件,因此load事件掩盖了事件无法识别的事实。解决方案是在事件绑定之前分叉代码:
function imageSwap()
{
var $img = $('.cic img');
if(!!document.addEventListener)
{
$img.on("load", loadTest)
}
else
{
$img.get(0).attachEvent("onreadystatechange", loadTest);
}
function loadTest(event)
{
$img.show();
}
}