我正在使用jQuery在悬停状态下淡入新图像并用“_over.png”替换当前的png。它在Chrome和Safari中运行良好,但在Firefox中无效。
不是在与我的初始.png相同的文件夹中查找_over.png,而是剥离网址并且不添加_over。因此,firefox会在翻转时搜索“http:www.png”,但淡入淡出仍然会发生。
这是我的功能:
$(function() {
$('img.fade').hover(function() {
var src = $(this).attr("src").match(/[^\.]+/) + "_over.png";
$(this)
.animate({opacity:0},0)
.attr('src',src)
.stop()
.animate({opacity:1},1000);
},
function() {
var src = $(this).attr("src").replace("_over", "");
$(this)
.animate({opacity:0},0)
.attr('src',src)
.stop()
.animate({opacity:1},1000);
});
});
我是jQuery的新手,并没有在网上找到任何解决方案,所以我完全迷失了。这可能只是一个明显的愚蠢错误。任何帮助将不胜感激。
答案 0 :(得分:0)
这是否尝试添加“_over”?
var src = $(this).attr("src").match(/[^\.]+/) + "_over.png"
match()
方法返回匹配对象,它可能会或可能不会toString()
对您有用的东西,这可以解释浏览器之间的不一致。
你可能只是简单的
var src = $(this).attr("src").replace(/\.png$/i, "_over.png");