加载页面时只加载一个JavaScript函数。

时间:2016-05-05 21:43:19

标签: javascript jquery

我有一个网页,其中包含一些JavaScript函数,可以在document.ready上加载。

但是,如果我有4个,那么只有最后一个似乎加载。

这是我的代码。

$(document).ready(function ()
{
    var nation = "ireland";
    var irelandMatches = [];
    var matchOrderReversed = false;

    loadDoc();
    showRSS("Irish Times");
    loadWeather();
    loadTwitter();

loadDoc()和loadTwitter()方法加载,但天气和showRSS没有。如果我注释掉loadTwitter(),那么天气就好了。

如果它有任何区别,所有这些方法都使用XMLHttpRequest,每个方法都在每个方法中定义,就像这样。

function loadYouTube()
    {
        var html = "";

        if (window.XMLHttpRequest)
        {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }

        else
        {  // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange = function ()
        {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
                var ret = xmlhttp.responseText;
                var spl1 = ret.split("~");

                for (i = 0; i <= 10; i++)
                {
                    var spl2 = spl1[i].split("*");
                    var current = "<a href='" + spl2[1] + "'><img src='" + spl2[2] + "' width='50' height='50'>" + "<a href='" + spl2[1] + "'>" + spl2[0] + "</a> <br/>";
                    html += current;
                }

                $("#yt").html(html);
            }
        }

        xmlhttp.open("GET", "getyoutube.php?", true);
        xmlhttp.send();
    }

谢谢你们:)

1 个答案:

答案 0 :(得分:3)

xmlhttp示例中定义loadYouTube()时,由于缺少var,您在全局范围内这样做了。因此loadDoc()设置了window.xmlhttp,然后loadWeather()不久会覆盖它,然后是loadTwitter()

在加载函数中尝试这样的事情:

function loadYouTube()
    {
        var html = "";

        // define xmlhttp in block scope
        var xmlhttp;

        // rest of function...
    }