[英]JQuery .load callback is called before .ready callback in loaded script, what is proper way of initialization loaded scripts?
在主文件上單擊按鈕,我正在加載某些div的內容
$("#my_div").load(function() {
alert("Loaded");
});
加載的內容只是腳本
<script>
alert("Init outside");
$(document).ready(function() {
alert("Init inside");
}
</script>
警報的順序是“外部初始化”,“已加載”,“內部初始化”。
我是否正確,這是在腳本主體中初始化已加載腳本的正確方法,這意味着alert("Init outside")
所在的位置? 不在.ready()
處理函數中嗎?
因為在我的實際工作流程中,我絕對需要在處理.load()
回調之前初始化腳本。 在.load()
回調中,我正在顯示已加載的模態,但是在此之前,模態應自行初始化,即設置on('show.bs.modal')
處理程序等。
很奇怪,如果我需要這樣的序列,則初始化應該在$(document).ready()
處理程序之外進行,所以這就是我要問的原因。
UPD:問題不是重復的,因為它與JQuery定義的初始化和回調序列更多有關。
這在某種程度上取決於您在模態初始化步驟中的操作,但是如果沒有異步元素,則無需將初始化代碼和實際顯示該代碼的代碼放在單獨的回調中。 如果代碼塊在針對不同事件的回調中,則首先執行哪個模棱兩可-您想確定它們將按順序運行。
例如:
$(document).ready(function() {
$('#modal').on('show.bs.modal', function() {
// your init code
});
$('#modal').modal('show');
}
show.bs.modal
將回調綁定到show.bs.modal
事件是同步操作,因此可以將代碼放在同一塊中。 .ready()
只是等待元素准備就緒(這是您所需要的),而.load()
等待所有內容的加載,但是這兩種方法都可以確保元素在回調執行之前就已經加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.