Tôi có một giao diện người dùng (hãy gọi nó là trang 1) có rất nhiều HTML và JavaScript trong đó. Khi một số các yếu tố trên trang 1 được nhấn vào, một jQuery UI Dialog được mở ra và nạp với một trang từng phần (chúng ta hãy gọi đó trang 2):
$("#myDialog").dialog({ modal: true /* Other options */ });
$('#myDialog').load('page2Link', { }, function() { });
$('#myDialog').dialog('open');
Trang 2 sau đó có một loạt các HTML và JavaScript cũng. Ví dụ đơn giản:
<script src="Scripts/page2Stuff.js" type="text/javascript"></script>
<div id="page2Body">
<!-- More elements -->
</div>
Tôi có JS bên trong page2Stuff.js
cần đợi cho đến khi trang 2 được hiển thị hoàn toàn. Có điều gì tôi có thể sử dụng trong trang này một phần để xem liệu HTML mới đã được thêm vào DOM chưa? Tôi đã thử các cách sau:
$('#myDialog').load('page2Link', { }, page2ReadyFunction);
Không thể tìm thấy page2ReadyFunction
. Tôi giả sử vì .load
chạy JavaScript trong page2Stuff.js
và sau đó loại bỏ nó hoặc một cái gì đó?
Cách tôi có thể làm cho nó hoạt động ngay bây giờ để sử dụng setTimeout
và liên tục kiểm tra xem nếu $('#page2Body')
trả lại bất kỳ điều gì nhưng điều này có vẻ không lý tưởng.
page2Độ chính xácĐịa chỉ sẽ là trình xử lý gọi lại được gọi khi hoàn thành tải. đó sẽ là cách tốt nhất để đi, không biết tại sao nó không được gọi? bạn có thể giải thích cách bạn đã triển khai/định nghĩa page2ReadyFunction không? – c4urself
Tại sao bạn không đặt 'script' vào cuối' page2'? –
@ c4urself page2ReadyChức năng sẽ chỉ là một hàm được định nghĩa trong page2Stuff.js như vậy: function page2ReadyFunction() {} – xbrady