第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery里的$(function())為什么會改變執(zhí)行順序?

jQuery里的$(function())為什么會改變執(zhí)行順序?

紅糖糍粑 2018-09-13 09:06:57
網(wǎng)頁代碼塊如下:...<script src="./js/main.js"></script><script>     try {      window.RenderModel = {{ data|safe }};     } catch (e) {     }</script>...后面這段內(nèi)嵌代碼是在頁面加載是由后端(django)補全,傳進來一些重要的參數(shù)。然后,我的main.js里有這樣一個變量:var hasServer = typeof (window.RenderModel) !== 'undefined'這個變量通過判斷window.RenderModel是否存在來檢測當前是否有服務器環(huán)境?,F(xiàn)在有一個小問題,雖然說可以解決,但是不明白其中的原理,所以請教一下各位高手。當hasServer這個變量在main.js里直接聲明時,無論是否在服務器環(huán)境,window.RenderModel都被檢測為undefined,因為main.js在內(nèi)嵌代碼前面執(zhí)行,這一點是很顯然的。但是,如果我將hasServer的聲明放置在一個$(function())中,如這樣:$(function() {    var hasServer = typeof (window.RenderModel) !== 'undefined'     ... });這個時候hasServer就可以正常判斷`window.RenderModel了,產(chǎn)生這種區(qū)別的原因是什么?
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經(jīng)驗 獲得超5個贊

$(function() {
    doOtherThings();
});
doSomething();

這段代碼,你也許是覺得 doOtherThings() 會先執(zhí)行,但實際是 doSomthing() 先執(zhí)行。因為 $() 實際是 $(document).ready() 的簡寫,也就是說 $() 中的 function 是 document.ready 事件的回調(diào)函數(shù)。它要在 document 準備好了(加載完了)才執(zhí)行。

很顯示,在到達當前 HTML 最后一句之前,文檔都還沒準備好,而寫在 $() 外面的代碼,是遇到即執(zhí)行。所以 doOtherThings() 是在執(zhí)行 doSomehting() 之前注冊到 ready 事件中,但執(zhí)行卻在 doSomething() 之后。


查看完整回答
反對 回復 2018-10-09
  • 1 回答
  • 0 關(guān)注
  • 1872 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號