我正在使用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进行演示......
答案 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。