2011-11-23 34 views
0

我有这个代码的问题,我找不到问题。它适用于JQuery 1.5.2及更低版本,但不适用于JQuery 1.6及更高版本。从JQuery 1.5.2冲突到Jquery 1.6或更高版本

这里的代码和感谢您的帮助!

$(document).ready(function() { 

    $(".selected").stop().animate({'backgroundPosition':'(0 -28)'}, {duration:200}); 

    $('#ver li a').hover(

     function() 
     { 
      if (!($(this).hasClass("selected"))) 
      { 
      height = $(this).height() * (1); 
      $(this).stop().animate({'backgroundPosition':'(0 ' + -height + ')'}, {duration:200}); 
      } 
     }, 

     function() 
     { 
      if (!($(this).hasClass("selected"))) 
      { 
       $(this).stop().animate({'backgroundPosition':'(0 0)'}, {duration:200}); 
      } 
     } 
    ); 

}); 
+0

尝试使用萤火虫并检查您收到的错误。 – coder

+0

你在控制台中遇到什么样的JS错误? – Seth

+0

是没有错误的,它在1.5.2中工作,问题是代码中的代码从一个版本改变到另一个版本,但是我找不到这个改变。 – Martin

回答

1

我遇到了类似的问题,但在我的情况下,我使用类似于“backgroundPosition:'+ = 1350px 0px'”的背景的X轴动画,出于某种原因,一旦我去了jQuery 1.6.2 ...我的所有其他动画实例在同一个块上都工作正常。

最后(在长时间的调试会话后),我注意到如果我从调用中删除了Y轴值,它就起作用了。所以“backgroundPosition:'+ = 1350px 0px'”不起作用,但“backgroundPosition:'+ = 1350px'”的作品。奇怪的是,它甚至不会向你抛出错误,动画过程,但没有任何反应(所以,没有错误)。截至目前,我无法想出一种方法来在Y轴上为背景图像制作动画。

0

马丁,我建议您下载并使用一个diff工具,如的WinMerge(http://winmerge.org/)看到的jQuery本身的两个版本之间的差异。

分析这些更改,专门查找您在代码中使用的函数中的更改。例如.animate(),.hasClass(),.height()等。

我相信你会在那之后找到答案。

或者,您可以分析每个jQuery版本的更新日志。从1.5.2升至1.6。

+0

感谢您的回答,但该工具只适用于您有其他代码进行比较的情况。我只有这个代码,我分析了更新日志,但是我找不到我的问题,这就是为什么我要求帮助。 – Martin

+1

你可以下载jQuery Source for 1.5.2和jQuery Source 1.6并比较这些。所有以前的版本都可以在这里找到:http://docs.jquery.com/Downloading_jQuery(向下滚动页面) – Joshua