未捕获的ReferenceError:添加webticker时未定义$

时间:2016-04-22 13:53:29

标签: javascript jquery html

我一直收到这个错误:

  

未捕获的ReferenceError:$未定义

我已经完成了基础知识,但仍然显示了这一点。我究竟做错了什么?这是我的剧本。我正在使用DOM元素来创建它。

var parenthead = document.head;
sjq = document.createElement("script");
sjq.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
parenthead.appendChild(sjq);

swt = document.createElement("script");
swt.src = "http://otexconnect.com/jquery.webticker.min.js";
parenthead.appendChild(swt);

$("#webticker").webTicker();

这是我的HTML

<ul id="webticker">
    <li id="item1">Some text</li>
</ul>

任何形式的帮助都会得到满足。感谢

1 个答案:

答案 0 :(得分:1)

你调用一个尚未准备好使用的功能,你需要一个回调,  做了一个加载函数,当所有脚本都准备就绪时,它将调用回调语句。

<ul id="webticker">
    <li id="item1">Some text</li>
</ul>
<script>
var libsToLoad = ['http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',
        'http://otexconnect.com/jquery.webticker.min.js'];
    function load(array,cb){
        var ready = false;
        var lib = null;
        var parenthead = document.head;
        var totalItens = array.length;
        var loaded = 0;
        while(lib = array.shift()){
            console.log('lib',lib);
            var script = document.createElement("script");
            script.src = lib;
            parenthead.appendChild(script);
            script.onload = function(){
                    loaded++;
                    if(loaded == totalItens){
                        ready = true;
                        cb();
                    }
            };

        }

    }

    load(libsToLoad,function(){
        console.log('ready');
        console.log($);
        console.log($("#webticker li").html())
        //Make your logic here
    });
</script>