2016-05-05 15 views
3

私はいくつかのJavaScript関数がdocument.readyに読み込まれるように設定されたWebページを持っています。ページ読み込み時に1つのJavaScript関数のみが読み込まれます。

しかし、私がこれらの4つを持っている場合、最後のものだけが読み込まれるようです。

ここに私のコードです。

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

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

loadDoc()およびloadTwitter()メソッドはロードされますが、weatherおよび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

ですから、他の( '$( "#のYT")HTML(HTML)で1つの関数のhtmlを消去していないあなたは確かです;'。 )、またはそれぞれの関数で異なるIDを持つ別の要素を使用していますか? –

+2

実行時エラーの可能性が最も高いです。あなたは単にあなたのブラウザ(Firefoxとchrome:ctrl + shit + i)でdevツールを開き、Consoleに切り替えて確認できます。その後、ページをリロードしてください。上記のコードからエラーを見つけることは難しく、不可能です。なぜなら、Ajaxレスポンスの返り値を予測することは不可能だからです。 – LoreV

+0

ええ、各関数は別のDIVに書き込みます。 – user3102785

答えて

3

それはあなたがあなたのloadYouTube()例でxmlhttpを定義するときに、あなたが原因varの不足のためにグローバルスコープにそうしているように見えます。したがって、loadDoc()window.xmlhttpに設定された場合、すぐにloadWeather()がそれを上書きし、その後にloadTwitter()が続きます。

あなたの読み込み機能では、このような何かを試してみてください:

function loadYouTube() 
    { 
     var html = ""; 

     // define xmlhttp in block scope 
     var xmlhttp; 

     // rest of function... 
    } 
関連する問題