IE7抛出jQuery的'堆栈溢出在行:0'错误

时间:2012-07-05 17:08:49

标签: jquery internet-explorer-7 stack overflow preload

我在jQuery 1.7.2上有一个小脚本。基本上,它显示缩略图,然后在加载后用完整图像替换。

<img src="http://site.com/thumbnail.jpg" data-original="http://site.com/original.jpg"  class="preload">

在jQuery中,我只想:

$('.preload').load(function(){

     $(this).attr('src', $(this).attr("data-original"));

});

适用于Firefox,Chrome甚至IE8等浏览器。但是,IE7将继续抛出

Stack overflow at line: 0

错误(乘以具有preload类的元素数)。

如果从图像中删除该类,则不会显示错误。

由于

1 个答案:

答案 0 :(得分:2)

您正在图像上执行onload事件,然后更改图像SRC,因此onload将再次触发。它处于无限循环中,因此您将获得堆栈溢出。

  $('.preload').load(function(){
    if($(this).attr('src') != $(this).attr("alt")){
         $(this).attr('src', $(this).attr("alt"));
    }
  });