如何实现.html()函数的回调方法

小编给大家分享一下如何实现.html()函数的回调方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的柘荣网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

通过JQuery的。html()函数我们可以非常方便地加载一段HTML到指定的元素中,例如给

中放入一组图片。问题是JQuery的。html()函数是同步的,如果我们想知道HTML被加载之后容器的高,例如获取容器的offsetHeight或scrollHeight属性的值,必须要等HTML元素中所有的内容都加载完毕后才能获取到真实的值,尤其是HTML中包含有image标签时。那如何才能实现。html()函数的回调方法呢?

对应的代码如下:

复制代码

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()函数中就可以继续下一步操作了。

以上是“如何实现.html()函数的回调方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享名称:如何实现.html()函数的回调方法
分享路径:http://azwzsj.com/article/pjdhsg.html