head.js和jQuery $ .noConflict()没有按预期工作

时间:2013-01-11 23:58:19

标签: jquery head.js

我正在试图找出其工作原理:

<script src="js/head.js"></script>
<script>head.js(<import-several-libraries-here>);</script>

<script src="code.jquery.com/jquery-1.8.3.js"></script>
<script src="code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

<script>
    var j183 = $.noConflict(true);
</script>

但这些不是:

<script src="js/head.js"></script>

<script>
    head.js(<import-several-libraries-here>);
    head.js("http://code.jquery.com/jquery-1.8.3.js");
    head.js("http://code.jquery.com/ui/1.9.2/jquery-ui.js");

    var j183 = $.noConflict(true);
</script>

<script src="js/head.js"></script>

<script>
    head.js(<import-several-libraries-here>);
    head.js("http://code.jquery.com/jquery-1.8.3.js");
    head.js("http://code.jquery.com/ui/1.9.2/jquery-ui.js");
</script>

<script>
    var j183 = $.noConflict(true);
</script>

我已经读过这个并试过各种变化,但无济于事:

HeadJS and jQuery Usage

更新

我尝试了一个建议的答案:

head.js("http://code.jquery.com/ui/1.9.2/jquery-ui.js");
head.js("http://code.jquery.com/jquery-1.8.3.js", function() {
            var j183 = $.noConflict(true);
        });

它不起作用。

2 个答案:

答案 0 :(得分:1)

你需要在回调中执行任何依赖于依赖关系的代码通过head.js加载:

head.js("/path/to/jquery.js", function() {

   var j183 = $.noConflict(true);

});

答案 1 :(得分:1)

根据http://headjs.com/

也许你应该尝试这样的东西来加载两个jQuery库,然后调用匿名函数,它将jQuery库重新分配给全局变量以供以后使用。

<script src="js/head.js"></script>

<script>
    head.js(<import-several-libraries-here>);

    head.js("http://code.jquery.com/jquery-1.8.3.js", 
            "http://code.jquery.com/ui/1.9.2/jquery-ui.js", function() {

         window.j183 = $.noConflict(true);

         head.js(<import-several-libraries-here>, function(){
            init();
         });  //that depend on j183

    });

    function init(){
         var $ = window.j183;

         $('body').each(function(){
             //do something
         });

         j183('body').each(function(){
             //do something else
         });

    }
</script>

已更新:以显示如何初始化库。