Firefox中的jQuery Hover问题

时间:2012-01-14 03:48:13

标签: jquery

我正在使用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的新手,并没有在网上找到任何解决方案,所以我完全迷失了。这可能只是一个明显的愚蠢错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是否尝试添加“_over”?

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

match()方法返回匹配对象,它可能会或可能不会toString()对您有用的东西,这可以解释浏览器之间的不一致。

你可能只是简单的

var src = $(this).attr("src").replace(/\.png$/i, "_over.png");