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

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

我怎樣才能等到新創(chuàng)建的元素“準備好”(下載所有腳本)

我怎樣才能等到新創(chuàng)建的元素“準備好”(下載所有腳本)

動漫人物 2021-10-14 13:31:51
我正在編寫一段將 Sammy JS(路由器)和 Knockout JS 粘合在一起的代碼。所以,這是我的問題,<script id="MyTemplate" type="text/html">     // [HTML Containing a script link (Encoded HTML)]</script>`我使用 jQuery 創(chuàng)建此模板的實例:var TInstance = $($("#MyTemplate").text())然后,我想將新的 htmlTInstance注入到我的<body>或其他現(xiàn)有標簽中$("body").html(TInstance)一切都很好,現(xiàn)在我想做的是ko.applyBindings將 new 綁定TInstance到 anViewModel并且它可以工作。我遇到的問題是:當我有一個<script src="..." />inside 時TInstance,我想等到該腳本被下載和解析,然后執(zhí)行ko.applyBindings.所以我試過了$(TInstance).ready(() => {ko.applyBindings(...)}),它在第一次加載頁面時工作,但如果我重做整個過程,換入一個新TInstance的就緒處理程序就TInstance不會觸發(fā)。我該怎么辦?
查看完整描述

2 回答

?
MMMHUHU

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

好的,這個答案不會是“復制、粘貼和播放”,它需要您進行一些調整,但我認為您會了解概念并進行管理。


無需添加依賴項管理模塊,無需重構代碼(通常純腳本標簽不會與 html 一起動態(tài)注入,原因與您現(xiàn)在遇到的問題相同。為第一頁加載帶有 html 的腳本標簽是個好主意加載,但以后添加的任何內容,特別是如果需要某些流程,都需要程序化處理,因此需要為較大的項目使用模塊管理框架)


一種方法是停止您的代碼執(zhí)行流程并輪詢環(huán)境以查看您的腳本是否已加載。IE:


    var demoInterval = setInterval(function(){          

        if(myCondition){

            clearInterval(demoInterval );

            functionThatStartsTheRestOfTheLogicFlow();  // this could apply bindings etc etc

        }

    },50);

現(xiàn)在例如,如果您使用腳本標記加載 jQuery,您的條件可能是 typeof($) !== 'undefined' 它會每 50 毫秒輪詢一次,直到 $ 被定義,然后它會調用一個函數(shù)來清除輪詢和繼續(xù)你的邏輯流程。


在您的情況下,條件可能是函數(shù)/模型的定義,您的自定義 js 文件可以設置的類似標志的變量,并且輪詢希望在某個時候讀取等等。


更好的是從 html 中刪除腳本標記并通過 javascript 動態(tài)加載腳本,以便您可以利用所需的特定腳本的 onload 事件,您可以在此處閱讀示例。對于開發(fā)人員來說,以編程方式控制這些情況要容易得多。


希望這可以幫助



查看完整回答
反對 回復 2021-10-14
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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