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

마틴, 난 당신이 jQuery를 자신의 두 버전 간의 차이를보기 위해 같은 WinMerge와 같은 DIFF 도구를 (http://winmerge.org/) 다운로드하고 사용하는 것이 좋습니다.

변경 내용을 분석하여 코드에서 사용중인 기능의 변경 사항을 구체적으로 찾습니다. 예를 들어, .animate(), .hasClass(), .height() 등

나는 그 대답을 찾을 것입니다.

또는 jQuery의 각 버전에 대한 변경 내역을 분석 할 수 있습니다. 1.5.2에서 최대 1.6.

+0

답장을 보내 주셔서 감사합니다.하지만이 도구는 비교할 다른 코드가있는 경우에만 작동합니다. 나는이 코드 만 가지고 있으며 changelogs를 분석했지만 내 문제를 찾을 수 없다. 그래서 나는 도움을 요청하고있다. – Martin

+1

1.5.2 및 jQuery Source 1.6 용 jQuery Source를 다운로드하여 비교할 수 있습니다. 모든 이전 버전은 http://docs.jquery.com/Downloading_jQuery에서 볼 수 있습니다 (페이지 아래로 스크롤). – Joshua