2012-01-03 3 views
1

이상한 문제가 있습니다.show(), hide(), toggle() 등 jQuery 애니메이션을 사용할 수 없습니다.

저는 지금 막 자바 스크립트를 영원히 사용 해왔고 jquery로 전환하려고합니다. 따라서 최신 jquery가로드되고 replaceWith()와 같은 일부 기능이 작동하지만 애니메이트 된 모든 것은 작동합니다. 일하지 마라. 정말 이상한 문제이지만, 콘솔에서 오류가 발생하지 않습니다. 무엇이 잘못 되었나요?

사이트 코드는 압축되어있어 읽을 수는 없지만 모양을 한 번 더 확인하십시오. 문제를 참조하십시오. 예를 들어 링크의 페이지로 이동하여 왼쪽의 '언어 :'상자를 클릭하십시오. H3을 클릭하면 기본적으로 아무 것도 표시하지 않도록 설정된 div #langlis가 표시됩니다. 그러나 아무 일도 일어나지 않습니다.

jQuery replaceWith가 작동합니다. 오른쪽의 바이러스 스캐닝 비트에서 사용 중이며, 바이러스를 검사하기 위해 클릭하면 작동하는 것으로 보입니다. 따라서 일부 jQuery는 작동하지만, 간단한 것은 아닙니다. :(

http://filequake.com/download-itunes-x64/

감사합니다.

+1

애니메이션 바로 앞에 중단 점을 넣은 다음 콘솔에서 $ (selector)를 실행하십시오. 그것이> = 1인지 확인하십시오. 즉, 요소를 올바르게 선택하고 있는지 확인하십시오. – asawyer

답변

1

쿼리가 문서 및 발견 된 모든 #의 langs_h3 요소에서 수행 $("#langs_h3").click(function() {...를 호출하면 의해 (Click 이벤트에 부착 제공하는 이벤트 리스너 함수를 가져옵니다 $() 객체의 click() 메소드).

그러나 사용자 페이지에서 인터프리터가 자바 스크립트 코드에 도달 할 때까지 찾고있는 H3 요소는 존재하지 않습니다. <h3> 태그.

할 수있는 일이 두 가지 있습니다. 당신은 페이지 하단에 코드를 이동할 수 있습니다, 또는 당신은 상단을 유지할 수 있지만, 함수 안에 넣어, 인수로서 그 기능을 전달) (jQuery를 호출

jQuery(function(){ 
    // your code here 
    $("#langs_h3").click(function() { /* ... */ } 
}); 

이 두 번째 제안은 일반적인 관행을 따르고 모든 자바 스크립트를 <header> 섹션 안에 보관할 수 있습니다. 권장 사항입니다. jQuery 함수는 함수를 전달하고 즉시 실행하지 않고 문서 onLoad 이벤트가 발생하면이를 저장하고 호출합니다 (코드 하단에 코드를 배치하는 것과 유사 함). 당신이 찾고있는 H3 요소는 그때까지 존재할 것입니다.

+0

안녕하세요, 코드를 머리에 넣으면 좋을까요? 원래는 거기에 있었고 문제 해결을 위해 아래로 옮겼습니다. –

+0

안녕하세요, jQuery (함수() 등 주위에 넣어 귀하의 제안을 사용했습니다, 그것을 작동합니다, 나는 또한 그것을 머리에 이동했습니다, 여전히 작동합니다, 감사합니다. :) 아직도 이해가 안 돼요. 엘리먼트가 생성되기 전에 이벤트 리스너에 대해 말하고이 코드를 실행하면 코드의 뒷부분에 나타나기 때문에 페이지가 아래쪽에서부터 빌드된다는 것을 깨닫지 못했습니까? 분명히 나는 ​​여기에 몇 가지 기본적인 것들을 놓치고있다. : ( –

+1

편집 된 답변보기 –