로부터 jQuery를 API 문서 사이트 에 대한ready
다음 세 가지 구문은 모두 동일합니다.
- $ (문서) .ready (핸들러)
- $ (). ready (handler) (권장되지 않음)
- $ (핸들러)
숙제를 마치고 소스 코드를 읽고 놀았는데 왜 그런지 모르겠습니다.
$().ready(handler)
권장하지 않습니다. 첫 번째와 세 번째 방법은 정확히 동일하며 세 번째 옵션은 다음을 사용하여 캐시 된 jQuery 객체에서 ready 함수를 호출합니다 document
.
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
그러나 ready 함수는 선택한 노드 요소의 선택기와 상호 작용하지 않습니다. ready
소스 코드 :
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
보시다시피 내부 queue ( readyList
)에 콜백을 추가 하고 집합의 요소를 변경하거나 사용하지 않습니다. 이를 통해 ready
모든 jQuery 객체 에서 함수 를 호출 할 수 있습니다 .
처럼:
- 일반 선택기 :
$('a').ready(handler)
DEMO - 넌센스 선택기 :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - 정의되지 않은 선택기 :
$().ready(handler)
DEMO
마지막으로 ... 내 질문에 : 왜 $().ready(handler)
권장되지 않습니까?