jQuery:如果完成,加载css on demand回调

前端之家收集整理的这篇文章主要介绍了jQuery:如果完成,加载css on demand回调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想根据需要加载CSS文件(通过例如运行一个xmlhttp请求,返回要加载的CSS文件),例如:style1.css,style2.css ..

所以 – 是有一种方式在jQuery(或插件)到这:

>批量加载几个文件将所有这些css文件添加到dom
>完成加载时:触发回调(类似警报“所有样式表都完成加载!

这个想法是:通过xmlhttp加载html,加载所需的css文件
然后 – 任何事情完成后,显示该html。

有任何想法吗?谢谢

解决方法

如何加载多个CSS文件与回调请求
请注意,没有xdomain权限,$ .get将只加载本地文件

WORKING DEMO

$.extend({
    getManyCss: function(urls,callback,nocache){
        if (typeof nocache=='undefined') nocache=false; // default don't refresh
        $.when(
            $.each(urls,function(i,url){
                if (nocache) url += '?_ts=' + new Date().getTime(); // refresh? 
                $.get(url,function(){
                    $('<link>',{rel:'stylesheet',type:'text/css','href':url}).appendTo('head');
                });
            })
        ).then(function(){
            if (typeof callback=='function') callback();
        });
    }
});

用法

var cssfiles=['/css/normalize.css','/css/tricks.css'];

$.getManyCss(cssfiles,function(){
    // do something,e.g.
    console.log('all css loaded');
});

强制刷新css文件添加true

$.getManyCss(cssfiles,e.g.
    console.log('all css loaded');
},true);

猜你在找的jQuery相关文章