jquery脚本在ie中不起作用

时间:2011-01-25 14:33:52

标签: javascript jquery internet-explorer thumbnails

当我点击缩略图时,这个脚本改变了大图的链接和图像路径,它在所有浏览器中都能正常工作,除了IE浏览器

    $('.image').click(function(event) {
    event.preventDefault();
    var imagePath = $(this).attr("href");
    var newImg = new Image;
    newImg.src = imagePath;
    newImg.onload = function(){
        $('#big_picture2').hide();
        $('#big_picture2').attr('src', imagePath);
        $('.product_image_large').attr('href', imagePath);
        $('#big_picture2').fadeIn('slow');
    };
});

html看起来像这样:

<a href="/documents/product/#GET_IMAGE_BIG.path#" id="thumb1" onclick="return hs.expand(this, { slideshowGroup: 1 } )" class="product_image_large"><img src="/documents/product/#path#" id="big_picture2" border="0" /></a>

<a href="/documents/product/#get_product_images.path#" class="image"><cf_get_server_file output_file="product/#get_product_images.path#" title="#get_product_images.detail#" output_server="#path_server_id#" output_type="0" image_width="45" image_height="41"></a>

不要被cf_get_server_file打扰这只是动态冷融合代码,它运行正常。

3 个答案:

答案 0 :(得分:1)

不确定这是否解决了整个问题,但您在定义onload属性后设置了src事件。这是在呼唤麻烦。反之亦然。

答案 1 :(得分:1)

如果图像已经被缓存,

onLoad将不会在IE中触发,请尝试检查IE将在加载图像时添加的complete属性。

newImg.src = imagePath;
var fadeIn = function(){
    $('#big_picture2').hide();
    $('#big_picture2').attr('src', imagePath);
    $('.product_image_large').attr('href', imagePath);
    $('#big_picture2').fadeIn('slow');
};
if($(newImg).attr('complete'))
{
    fadeIn();
}
else
{
    newImg.onLoad = fadeIn
}

答案 2 :(得分:0)

添加$(document).ready()