幸运快3_快3app娱乐_幸运快3app娱乐

jquery html() callback

时间:2019-10-08 22:29:20 出处:幸运快3_快3app娱乐_幸运快3app娱乐

  通过JQuery的.html()函数让让我们歌词 歌词 还不还会 非常方便地加载一段HTML到指定的元素中,类似于给<div></div>中倒入一组图片。大大问题 是JQuery的.html()函数是同步的,将会让让我们歌词 歌词 想知道HTML被加载后后容器的高,类似于获取容器的offsetHeight或scrollHeight属性的值,前要要等HTML元素中所有的内容都加载完毕后不还会 获取到真实的值,尤其是HTML中中含高image标签时。那如保不还会 实现.html()函数的回调土最好的办法呢?答案是使用前端的Q.

  对应的代码如下:

var defer = Q.defer();
var realHtml = $('#html-canvas');
realHtml.html(html);
var contentImages = $("#html-canvas img");
var totalImages = contentImages.length;
var loadedImages = 0;
if (contentImages.length === 0) defer.resolve();
else {
    contentImages.each(function(){
        $(this).on('load', function(){
            loadedImages++;
            if(loadedImages == totalImages)
            {
                defer.resolve();
            }
        });
    });
}
return defer.promise.then(function () {
    console.log('all done.');
});

  首选通过JQuery选着 器找到容易中已加入HTML的所有img元素,要是给所有img元素换成onLoad事件,并判断否有所有img元素的onLoad事件否有都将会触发(loadedImages == totalImages)。要是通过defer.resolve()来通知Q的promise已完成异步操作,要是在.then()函数中就还不还会 继续下一步操作了。

热门

热门标签