2011-11-23 62 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