2014-04-03 6 views
0

현재 Karl Swedberg의 Learning jQuery에서 책의 모든 jQuery 코드 샘플이 $ (document) .ready()에 포함되어 있습니다.함수에 jQuery 명령을 동봉해야하는 이유

왜 코드가 $ (document) .ready()에 들어 있는지, 즉 HTML 문서가로드 된 경우에만 코드가 실행되도록해야하는지 이해하지만이 책은 코드가 있어야하는 이유를 설명하지 않습니다. 함수 안에 위치한다. 위의 예에서 예컨대

$(document).ready(function(){ 
    alert("The page has loaded."); 
    alert("2nd alert."); 
}); 

, 왜 경고는 함수() 작업에 포함 할 필요가 않으며, 같은 예는 다음 작동하지 않을 수 없습니다.

$(document).ready(
    alert("The page has loaded."); 
    alert("2nd alert."); 
); 

누구든지 나를 계몽 할 수 있으면 감사하겠습니다.

+2

'.ready을 입력해야하지 않으려면

주만큼 기능적으로 동일 속기 표기법이 '함수를 사용합니다 (예 : * 그렇게 쓰여졌습니다 *) – kei

+3

이것은 단순히 구문 오류 일뿐입니다. – Bergi

+0

아마 책을 잠시 내려 놓고 공식 문서를 참고하십시오 : http://api.jquery.com/ready/ – Sparky

답변

0

$ (문서) .ready 콜백을 허용합니다. 콜백은 자바 스크립트 함수입니다. Javascript 함수는 변수처럼 전달 될 수 있습니다. 위의 경우에는 이름이없는 함수 인 인라인 익명 함수가 사용됩니다.

이 같이 당신의 예를 다시 작성할 수 있습니다 : 당신이 함수에 매개 변수로 문을 통과 할 수 있지만,이 기능을 전달할 수 있기 때문에이 기능을 사용할 필요가

function doStuff() { 
    alert("The page has loaded."); 
    alert("2nd alert."); 
} 

$(document).ready(doStuff); 

.

$(function() { 
    alert("The page has loaded."); 
    alert("2nd alert."); 
}); 

또는 인라인 기능이없는

: 때문에

function doStuff() { 
    alert("The page has loaded."); 
    alert("2nd alert."); 
} 

$(doStuff); 
1

Docs을 읽으면 DOM이 완전히로드 될 때 실행할 함수를 지정합니다.

.ready (핸들러)

, 핸들러

형태 : Function()는 DOM이 준비 후

함수를 실행합니다.

0

$(document).ready()은 기능을 기대합니다. 두 번째 예제는 실제로는 alert("The page has loaded."); alert("2nd alert.");이 유효한 매개 변수 목록이 아니므로 구문 오류입니다.

일반적으로 $(document).ready()을 jQuery에 사용해야하는 이유는 일반적으로 DOM 노드 (실제로 스크립트가 페이지의 맨 위에있는 경우 DOM에서는 실제로 사용할 수 없음)와 상호 작용하기 때문입니다. 또 다른 방법은 스크립트를 페이지의 맨 아래에 두는 것입니다. 필요한 시점에 필요한 모든 DOM 노드를 사용할 수 있으므로 $(document).ready() 래퍼가 필요하지 않습니다.