Từ trang web tài liệu API jQuery choready
Cả ba cú pháp sau đều tương đương:
- $ (tài liệu) .ready (trình xử lý)
- $ (). sẵn sàng (trình xử lý) (điều này không được khuyến nghị)
- $ (trình xử lý)
Sau khi làm bài tập về nhà - đọc và chơi với mã nguồn , tôi không biết tại sao
$().ready(handler)
không được khuyến khích. Cách đầu tiên và cách thứ ba hoàn toàn giống nhau, tùy chọn thứ ba gọi hàm sẵn sàng trên đối tượng jQuery được lưu trong bộ nhớ cache với document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Nhưng hàm sẵn sàng không có tương tác với bộ chọn của các phần tử nút đã chọn, ready
Mã nguồn:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Như bạn có thể thấy, nó chỉ thêm lệnh gọi lại vào hàng đợi nội bộ ( readyList
) và không thay đổi hoặc sử dụng các phần tử trong tập hợp. Điều này cho phép bạn gọi ready
hàm trên mọi đối tượng jQuery.
Giống:
- bộ chọn thông thường :
$('a').ready(handler)
DEMO - Bộ chọn vô nghĩa :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Bộ chọn không xác định :
$().ready(handler)
DEMO
Cuối cùng ... cho câu hỏi của tôi: Tại sao $().ready(handler)
không được khuyến khích?