我一直在实现yepnope脚本加载器,作为modernizr.js库的一部分。之后,我已经成功地加载了jQuery和依赖jQuery的脚本。我是异步加载资源的新手,所以对我来说有点新。我一直在搜索,但以下内容并没有带来太多运气。
我的问题是,当您使用yepnope.js框架时,如何有效地替换$(document).ready()功能,您有何看法?
我的理论是在我的基础库中创建一个适当命名的函数,然后将页面上的该变量设置为包含我现有的$(document).ready()代码的匿名函数。在所有脚本都加载到完整的回调中之后,yepnope将调用此变量。
您是否同意这是一种好方法,还是我完全以错误的方式来对待呢?
(对于那些不知道的情况,yepnope.js的异步性质意味着该文件在yepnope加载程序完成之前调用$或jQuery,并抛出“$ is undefined”错误
第一个问题,希望它是一个好问题。
最佳答案
如果不带yepnope加载jQuery对您来说不是问题,那么有一种更简单的方法。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$.holdReady(true);
yepnope.load({
load: [
'placeholder.js',
'jquery-ui.min.js'
],
complete: function (){
$.holdReady(false);
}
});
</script>