如何指定yepnope.js放置加载脚本的位置?

时间:2013-02-06 21:38:04

标签: javascript jquery yepnope

林'一点JS菜鸟。

这是一个粗略的例子,但它说明了我的问题。 yepnope工作得很好,但它正在堆栈顶部添加yep脚本(jquery.selectBoxIt.min.js)。问题是,如果加载的脚本放在它在JQuery库之前加载的堆栈的顶部。问题是它是否依赖于jQuery才能运行。我查看了yepnope文档,但我没有看到任何提及它。

这是我的代码(在我的文档底部:

<script src="js/jquery.js"></script>
<script src="js/jquery-ui-1.9.1.custom.min.js"></script>
<script src="js/jquery.infieldlabel.min.js"></script>
<script src="js/jquery.colorbox-min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/jquery.validate.min.js"></script>
<script src="js/modernizr.js"></script>
<script type="text/javascript">
Modernizr.load([
    {
    // Let's check something simple
    test : Modernizr.borderradius,
    // this should then satisfy the yep and load this script
    yep : ['js/jquery.selectBoxIt.min.js']
    }
]);
</script>
</body>

2 个答案:

答案 0 :(得分:0)

只需在函数中添加上面的静态JS代码并将其放在$(document).ready()中 - 这将确保在调用脚本时加载jquery。如果这不可行,请尝试使用javascript加载jquery,并在回调中使用静态JS。请参阅Load jQuery dynamically

答案 1 :(得分:0)

我自己对Modernizr / yepnope很新,但是来自the yepnode docs我认为关键是使用yepnope(或Modernizr,它们是同一个东西)以正确的顺序加载你需要的脚本,并且yepnope将确保按照您指定的顺序执行它们。

所以我相信你需要的是这样的东西:

<script src="js/modernizr.js"></script>
<script type="text/javascript">   

Modernizr.load([
    {
        // Load jQuery first
        load : ['js/jquery.js', 
                // ... and your other JS files
               ]
    },
    {
        // Let's check something simple
        test : Modernizr.borderradius,
        // this should then satisfy the yep and load this script
        yep : ['js/jquery.selectBoxIt.min.js']
    }
]);

</script>

同时查看那些yepnode文档,了解他们尝试从CDN加载jquery的示例,如果没有成功加载,则返回本地副本 - 这使我更清楚。

相关问题