2013-08-20 3 views
0

$ (document) .ready();에 대한 질문이 있습니다. jquery에서 함수. 무엇을합니까? 이 코드의 차이점은 무엇입니까?

1.

$(document).ready(function(){ 
alert("hello"); 
}); 

2.

$(document).ready((function(){ 
alert("hello"); 
})(); 
); 

의 첫 번째 코드는 익명 함수를 정의하고이

하지만 함수를 호출 않습니다. 적어도 두 번째 함수는 익명 함수를 호출합니다. 제게이 질문을 설명해주십시오. 고맙습니다.

+0

익명 함수를 그냥 콜백입니다. 'ready' 이벤트가 발생하면 (자) 불려갑니다. – JohnP

+0

두 번째 발췌 문장은 실제로 '호출'되지 않습니다. 첫 번째 콜백은 문서가 준비 될 때 사용자를 대신하여 콜백을 전달합니다. – palerdot

+2

두 번째 스 니펫은 0을 의미합니다. –

답변

3

첫 번째 경우
첫 번째의 설명은 DOM 등을 준비 할 때 호출되는 익명 함수입니다. 그것은 예상대로 작동합니다.
당신이 무엇을하는지 모른다면 간단히 여기에서 설명 할 것입니다 :

무엇을하는지, 준비 함수, 매개 변수로서의 함수를 제공합니다. DOM (페이지를 의미)이로드되어 준비가되었을 때 메소드를 호출합니다.

var myReadyFunction = function(){ // Define the method to be called when 
     alert("hello");   // the DOMis ready 
    }; 
$(document).ready(myReadyFunction); // Tell the ready function, to execute 
            //this function when the DOM is ready 

두 번째 경우
두 번째 설명은, 개발자가 실수해야합니다, 그것은 파서가 그것을 볼 때 그것이 immediatly 실행됩니다 의미에 "즉시 기능"입니다 . 기능 :

(function(){ 
    alert("hello"); 
})(); 

는 - immediatly 문자열 hello을 경고하고 방법은 undefined를 반환합니다. 그 것을 준비된 방법으로 삽입하는 것 :

의미는 "hello"소리를 내며 이후에이 라인이됩니다.

$(document).ready(undefined); 
0

차이는 없습니다. $(document).ready()은 문서를로드 할 준비가되면 (이벤트가 시작되고 처리되는 경우) 자동으로 jQuery에 의해 호출됩니다. 준비된 호출에 전달한 익명의 함수를 실행합니다. 두 번째 예제에서 수행 한 유일한 작업은 한 번 더 전달하고 실행하는 것입니다.

0

$(document).ready()은 이벤트에 콜백 함수를 바인딩합니다. document 개체의 ready 이벤트가 발생하면 콜백 함수가 실행됩니다. ready에 전달하는 인수는 해당 이벤트 바인딩에 대한 콜백 역할을하고자하는 함수입니다.

0

첫 번째 기능은 문서 준비에서 호출됩니다. $(document).ready에는 문서로드 기능도 있습니다. 준비 함수는 문서가 준비되면 호출됩니다 (css + js). load 함수는 모든 것이로드 될 때 이미지를 포함한다.

두 번째 기능은 결코 이런 식으로 사용되지 않습니다. 그것은 익명의 함수와 문서를 조합 한 것입니다.함수에서 익명 함수가 직접 호출되고 결과는 문서 준비 함수에 전달됩니다. 당신이 그런 식으로 사용하는 경우는 다음과 같이 사용한다 :

$(document).ready((function(){ 
    alert("hello"); 
}) // No open/close brackets and no ; 
); 

상세 정보 :

  1. jQuery load
  2. jQuery ready
관련 문제