调试IE 8的jquery,为什么它不起作用?

时间:2013-01-28 12:14:48

标签: jquery internet-explorer

我正在使用jquery创建一个非常简单的库,它适用于所有浏览器但在IE8和7中失败。

任何想法为什么以及如何调试它?

//Gallery system, single and compare pages
function makeGallery (whichThumb,whichMainImage,whichImageWrap) {
    $(whichThumb).live("click", function() {
        $(whichMainImage).hide();
        $(whichImageWrap).css('background-image', "url('images/no-image.png')");
        var i = $('<img />').attr('src',this.href).load(function() {
            $(whichMainImage).attr('src', i.attr('src'));
            $(whichImageWrap).css('background-image', 'none');
            $(whichMainImage).fadeIn();
        });
        return false; 
    });
} // End makeGallery

图像变为no-image.png,之后没有任何反应...... 我正在设置jsfiddle进行演示......

1 个答案:

答案 0 :(得分:1)

你应该反向设置onload回调和src:

  var i = $('<img />');
  i.load(function() {
        $(whichMainImage).attr('src', i.attr('src'));
        $(whichImageWrap).css('background-image', 'none');
        $(whichMainImage).fadeIn();
  });
  i.attr('src',this.href);

在旧的ie版本中,如果浏览器足够快以获取图像(例如来自缓存),则不会调用回调,这通常是使用此订单的最佳做法。

由于live已弃用很长时间,现在已从上一版本中删除,因此您应该使用on