Jquery是Ready wrapper

时间:2012-04-30 04:10:17

标签: javascript jquery

是否有任何javascript代码换行可用于等待Jquery加载并在成功加载jquery后创建回调?

类似这样的事情

JqueryWait(function(){
   //my magnificent jquery codes ^^
});

我想要一个像这样的代码包装......

说明: 我正在使用headjs,我在一个单独的headjs代码中加载了jquery。现在我的其他脚本依赖于jquery,这就是为什么其他脚本必须知道jquery是否已经加载。我知道headjs的回调函数,但我的其他脚本不能放在回调函数

4 个答案:

答案 0 :(得分:1)

试试这个:

function JqueryWait(fn) {
    if (jQuery) fn();
    else setTimeout(function() { JqueryWait(fn); }, 100);
}

JqueryWait(function(){
   //my magnificent jquery codes ^^
});

答案 1 :(得分:0)

$(function() {
// code jere... jquery is loaded
});

更多信息:http://api.jquery.com/ready/

答案 2 :(得分:0)

只要将jQuery文件放在文档中的javascript文件之前(如果将两个文件放在一个.js文件中无关紧要),就应该在代码启动之前加载jQuery。否则,jQuery没有正确加载。您可以使用此回退方法在脚本中检查jQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
    document.write(unescape("%3Cscript src='/js/jquery-1.7.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>

通过CSS-Tricks

如果您希望在页面加载后加载jQuery ,则有两个选项。注入一个脚本标记,将jQuery提供给DOM并等待文档加载(如上例所示),或者使用像RequireJS这样的异步加载器(它实际上做了几乎相同的事情但更好地用于许多其他目的)喜欢依赖管理。)

注意:其他答案使用$(function(){})

该方法只等待加载DOM,在运行代码之前不会检查jQuery是否存在。

答案 3 :(得分:-1)

你不需要额外的功能来做到这一点。 jQuery的$(document).ready(function() { });就足够了。

$(function() {
    //ever code written inside here is run, after the jQuery & DOM is ready
});

Anways,还有另一种检查jQuery是否已加载的方法

if (typeof jQuery == 'undefined') {
   //... jquery not loaded
}