2009-10-27 4 views
0

페이지하는 데 문제가 있습니다에 내 jQuery를 다른 코드 가벼운 음식을 디버깅 방화범을 사용 http://schnell.dreamhosters.com/index.php?page=gallery#나는 ...이 jQuery를

을 버그를 알아낼 수 있으며 자바 스크립트/jQuery를 디버깅에 매우 유용 증명 됐어요 . 그러나 동시에, 내가 해 본 가장 실망스러운 디버깅 경험 중 하나였습니다. 나는 왜 다른 사람의 방법론을 튜토리얼, 캐릭터의 캐릭터에서 복사 할 수 있는지를 알지 못하지만 오류가 계속 발생하는 것은 확실합니다.

어쨌든 여기서 문제는 Firebug가 소스의 20 행에 버그가 있다고 주장하는 것입니다.

실종 : 속성 ID 후 [이 오류에 브레이크] $ ('# 테이블') 애니메이션 ({ "왼쪽 :"+ ATTR + "픽셀"}, 2000);합니다. \ n

이 버그 콜론 바로 거기이기 때문에 나에게 큰 부하처럼 보인다! 그리고 이것이 jQuery/Javascript 디버깅이 때때로 고통스러운 이유입니다. 오류 메시지는 다소 복잡한 데 때때로 때로는 나에게 감각을 자극하지도 않습니다. 아니면 그냥 방화범이야.

어느 쪽이든, 내가 여기서하려는 목표는 동적으로 애니메이션 기능을 변경하려고하는데, 왼쪽 화살표를 클릭하면 왼쪽으로 갈수록 이미지 격자가 바뀝니다. CSS 'left'속성의 특성). Javascript 변수와 숨겨진 입력 태그를 사용하여 필수 값을 유지할 수 있지만 주요 장애물은 이러한 변수를 인식하는 애니메이션 기능을 얻는 것입니다. 근처에는 애니메이션을 만드는 방법에 대한 인수에 대한 문자열 리터럴 만 받아 들일 수 있으며, 설명서가 도움이되지 않는다고 말할 수 있습니다. 불가능한 것처럼 애니메이션을 사용하여 변수 사용에 대해 논의하지 않기 때문입니다.

글쎄, 내가 불가능하다고 생각하지 말고, 그는 내 방식대로 많이 들어가기를 좋아한다.

+0

다른 버그 (이 버그는 기능적 버그)가 있습니다. 그림 그리드를 스크롤하여 'count'를 6 개까지 늘린 다음 페이지를 새로 고치면 카운트는 여전히 6이됩니다. 다음 번에 화살표를 클릭하면 그리드가 움직입니다 다시 시작하는 대신 오른쪽으로 7 걸음 (6 + 1). 11 단계 (계단 끝)에 계단을 씌우므로 그리드를 스크롤 할 수없는 지점에 도달합니다. 그 이유는 이미 끝났다고 생각하고 더 이상 이동할 수 없기 때문입니다. 변수를 지우는 유일한 방법은 탭을 닫고 사이트를 다시 방문하는 것입니다. 조언? –

답변

3

잘 형성되지 않은 애니메이션 함수에 전달 리터럴 목적은, 그것은해야한다 :

$('#table').animate({left: attr + "px"}, 2000); 

편집가 : 코드에 밀접하게 찾고, 당신은 또한에 입력에서 값을 얻기 위해 노력하고있다 ID는 = "계산", 당신은 ID 선택해야하는 누락 된 # 문자가 있습니다,

var count = +$('#count').val(); // get #count value as Number 

또한이 count 변수를 증가하고 있지만 먼저 숫자로 변환해야을때문에input 요소의 속성은 문자열입니다. (나는 할당의 오른쪽에있는 단항 플러스 연산자을 사용하여 작업을 수행했습니다.)

"1" + 1 == "11" 
+0

나는 그게 왜 유효한지 잘 모르겠지만 내가하고있는 일은 아니지만 파이어 버그가 내게는 더 이상 소리 지리지 않습니다. 그래서 제 책에서 승리합니다. 이제 모든 혼란이 내가 원하는 것을 할 수 있는지 보자. –

+0

또한 이러한 오류를 지적 해 주셔서 감사합니다. 입력 태그의 값 속성이 기본적으로 문자열이라는 것을 알지 못했고 JS의 변수가 PHP $ 변수와 비슷하다고 가정 했으므로 가장 적절한 데이터 유형이 초기화시 변수로 선택됩니다. –

0

시도 :

$('#table').animate({left: attr}, 2000); 

당신은 당신이 두 변수 그 중 하나가 문자열을 추가 경우 때문에, 숫자로 변환해야 연결이 열립니다 여기에서 "px"측정 단위는 필요하지 않습니다. 그건 제쳐두고, 위의 익명 개체의 올바른 생성입니다. 중괄호 안에 문자열을 넣는 것뿐입니다.

+0

등 애니메이션 함수에 전달되는 어떤이 전체 문자열 리터럴 코드를 살펴본 "300 픽셀" : "최고 : 300 픽셀"방식에 아직이 더 좋아 상단의 행동입니다 어쩌면 내가 본 것은 더 이상 유효한 것으로 간주되지 않는 구식이거나 jQuery는 정말로 까다 롭습니다. –

+0

다음과 같이 나타날 수 있습니다 : animate ("{left : 20}", 3000)하지만 그 차이는 있습니다. – cletus

관련 문제