JQuery在鼠标悬停时更改图像src在IE7和8中不起作用

时间:2014-02-05 23:56:22

标签: javascript jquery internet-explorer internet-explorer-8 internet-explorer-7

我有一组图像,我希望源在鼠标悬停时更改。我的代码在除IE 7和8之外的所有内容中都能正常工作 - 当我将鼠标悬停在图像上时,它只会变为损坏的图像链接。

我的代码是:

$(".socialicon").each(function() {
   $(this).find("img")
        .mouseover(function() { 
            var src = $(this).attr("src").match(/[^\.]+/) + "hover.png";
            $(this).attr("src", src);
        })
        .mouseout(function() {
            var src = $(this).attr("src").replace("hover.png", ".png");
            $(this).attr("src", src);
        });
});

有人知道我是否有必要改变以便在IE 7和8中使用它?

1 个答案:

答案 0 :(得分:2)

你应该在IE7& 8上进行调试 - 使用鼠标在元素上输入后,$(this).attr("src")src属性具有该元素的值是多少?我想,IE可能会返回图像的绝对路径,例如“http://example.com/image.png” - 在这种情况下,您的RegEx将无效。

为什么不打电话

var src = $(this).attr("src").replace(".png", "hover.png");

而不是

var src = $(this).attr("src").match(/[^\.]+/) + "hover.png";

对于mouseout方法,这将更加一致。