2017-04-03 107 views
0

我有一個畫廊插件,生成HTML。我需要以某種方式等待,直到附加的HTML完成加載它的資產再次追加它。我試過window.load,但沒有奏效。唯一能夠修改目標區域的工作是setTimeout回調,我覺得這很回頭客。如何等待,直到附加的HTML已經加載資產

我該如何完成我想要做的事情? 我想對生成的標記運行當前的代碼是:

jQuery('ol').append('<li data-toggle="modal" id="thumb" class="yt-thumb" overflow-scroll="false" overflow-scroll="true" data-target="#youtubeModal"><img src="/images/dome-thumb.jpg" /></li> '); // add youtube to thumb slider 
jQuery('ol').appendTo(jQuery('#thumb-area')) 
+0

資產在圖像?或資產在DOM節點? DOM節點被同步附加。圖像只需要一個onload處理程序。 – zzzzBov

+0

更具體地說,我試圖找出爲什麼我不能追加由插件生成的區域,除非調用1200毫秒的setimeout。我只是需要上面的代碼才能在沒有超時的情況下工作 – Quesofat

+0

您需要更新您的問題才能更清楚地包含[mcve],但至少沒有這個問題[此主題(#1)] (/ help/on-topic),並且應該關閉。 – zzzzBov

回答

0

繼承人我會做什麼,我承認它並不完美,但你可以在圖像與onload事件插入到DOM sepratly和時被稱爲回插入瀏覽器已完全加載圖像的模式。

$('body').append('<img style="display:none" id="temp">'); 
$tempImg = $('img#temp'); 
$tempImg.on('load', function() { 
    // Append your modal here 
    jQuery('ol').append('<li data-toggle="modal" id="thumb" class="yt-thumb" overflow-scroll="false" overflow-scroll="true" data-target="#youtubeModal"><img src="/images/dome-thumb.jpg" /></li> '); // add youtube to thumb slider 
    jQuery('ol').appendTo(jQuery('#thumb-area')) 
}); 
$tempImg.attr('src', '/images/dome-thumb.jpg'); 

所以,當你更新隱藏臨時圖像上的SRC瀏覽器會下載圖像,然後當完成您插入模式。

相關問題