2017-04-03 64 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浏览器会下载图像,然后当完成您插入模式。

相关问题