2010-12-14 79 views
1

我有以下代码,它会获取您悬停的元素的左侧和顶部位置。它在safari和IE中产生正确的结果,但未能获得将鼠标悬停在Firefox上的img的位置 - 它返回0,0。任何人都可以看到为什么这可能是?jquery - 在Firefox中获取位置问题

我认为这可能与将它设置为变量,因为它似乎工作,如果我把它放在函数中。我需要将它设置为一个变量,但它可以返回到其原始状态。

$.fn.hoverAnimationTwo = function() { 
    return $(this).each(function() { 

     var originalLeftTwo = parseInt($(this).css("left")); 
     var originalTopTwo = parseInt($(this).css("top")); 

     return $(this).hover(function() { 
      $(this).animate({ 
       width: "17px", 
       height: "17px", 
       left: originalLeftTwo - 5, 
       top: originalTopTwo - 5 
      }, 100); 
     },function() { 

      $(this).animate({ 
       width: "7px", 
       height: "7px", 
       left: originalLeftTwo, 
       top: originalTopTwo 
      }, 100); 
     }); 
    }); 
} 

$(".myImg").hoverAnimationTwo(); 

这是非常奇怪的另一件事是,我可以我所有的代码复制到的jsfiddle和它似乎工作。

编辑: 行......所以事实证明,这不是一个JavaScript问题。这是因为在页面的其他地方,我给了一个元素一个以数字字符开头的类,这完全是我的不好,我应该知道更好!

回答

2

浏览器在依赖CSS属性时似乎有一些不一致之处。您是否尝试过使用.position().offset()(以适用于您的需求为准)?

http://api.jquery.com/offset/http://api.jquery.com/position/

+0

这将产生相同的结果...我喜欢你的想法虽然。 – Tom 2010-12-14 11:14:42

+0

非常奇怪。不幸的是,这就是我的全部。 :) – 2010-12-14 11:18:53