tôi sẽ nói YES (Tôi không biết nếu điều này được hỗ trợ bởi tất cả các trình duyệt. Tôi sử dụng nó trong Safari và Chrome)
testcase bạn có thể tìm thấy ở đây : http://maakmenietgek.nl/testcases/domready/ Xin lưu ý rằng tôi không thể có được nó làm việc trong một fiddle, đó là lý do tại sao một độc lập testcase
Các index.html trông như thế này
<!DOCTYPE html>
<head>
<title>Testcase</title>
<script src="jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#clickme').click(function() {
$.get('ajaxdata.html', function(data) {
$('#addhere').html(data);
});
});
})
</script>
</head>
<body>
<p id="clickme">clickme</p>
<div id="addhere">
</div>
</body>
</html>
Các dữ liệu được nạp với $.get
gọi trông như thế này
<p>added data</p>
<script type="text/javascript">
$(document).ready(function() {
alert('added data');
});
</script>
Cảnh báo cho thấy sau khi html đã được thêm vào DOM
Nguồn
2013-03-29 10:18:10
@Felix - Tôi không muốn để phát hiện thay đổi đối với DOM , Tôi muốn phát hiện khi tài nguyên đã được tải sau khi tôi thay đổi DOM. Tất cả những câu hỏi bạn tham khảo là về phát hiện thay đổi. – UpTheCreek
Có thể bạn nên nêu rõ điều này sau đó. DOM đang sẵn sàng và tất cả các tài nguyên được tải đều là hai thứ khác nhau. –
Chỉ cần làm rõ, vì bạn dường như không phân biệt giữa tải và sẵn sàng, trong jQuery .load() xảy ra khi trang được hiển thị hoàn toàn, trong khi .ready() xảy ra ngay khi phân cấp DOM được xây dựng. Nếu mã của bạn dựa vào các tài sản đã tải (ví dụ, bạn cần lấy kích thước của một hình ảnh), bạn nên sử dụng .load() để đảm bảo rằng mã của bạn được thực thi khi tất cả các tài sản cần thiết có sẵn. Nếu không, bạn có thể sử dụng .ready() để tăng tốc độ mọi thứ, vì mã của bạn sẽ được thực thi trong khi hiển thị. – excentris