2012-02-27 7 views
1

新しいWebサイトでjqueryとAjax関数を使用している間にバグを発見しました。 。AJAX + Jquery Webページのデバッグ - コンテンツの動的ロードが機能していないようです

ここでさらに文書のためのウェブサイトのURLは、私はAJAXをこのように使用して、いくつかの内容をロードする機能のloadXMLを呼び出すときに問題が発生し、 http://phpschool.altervista.org/is/

です:

 $("#menubar .button").live("click",function() { 

      $("#aj_load").fadeOut("slow", function() 
      {     
       loadXML('archive/'+$(this).attr("id")+'.html'); 
      }); 

     }); 

// #menubar .button is the identifier for the menu buttons. 
// #aj_load is the div that contains ajax contents when requested. 

だから、このコードの意味、

Fade out the contenitor aj_load, 
Load Contents using ajax, 
Show out the contenitor with contents, 

しかし、私はそう、AJAX要求レポートエラー404または12000、およびスクリプトが停止する必要があります ランニング。

あなたは、例えば、約ボタンをクリックしてウェブサイトにしようとした場合、あなたは私がcontenitorからフェードアウト機能を除去するためにコードを変更したので、それは、正常に働いているはずです。

 $("#menubar .button").live("click",function() { 

      loadXML('archive/'+$(this).attr("id")+'.html'); 
     }); 

とにかくフェード機能がAjax要求を妨げるのはなぜですか? 私はこれを説明することはできません。

loadXMLにはjqueryのload()関数が含まれています。これはWebサイトで見ることができます。

おかげで非常に多く、

EDIT:

function loadXML(xmlURL) 
{ 
resetStyles(); 

$("#aj_load").load(xmlURL+" #content0"+cur_seq, function(response, status, xhr) { 
    if (status == "error") 
    { 
     var msg = "Pagina Non Trovata: "; 
     $("#aj_load").html('<br/><br/><br/><h3 style="text-align:center">'+msg + xhr.status + " " + xhr.statusText+'</h3>'); 
    } 
    else 
    { 
     num_seq = $("#aj_content").text(); 
     if(num_seq !="0") 
     { 
      $("#less").off("click").on("click", function() 
      { 
       $("#aj_load").fadeOut("slow",function() 
       { 
        slideUP(num_seq); 
        loadNEXT(xmlURL,"prev"); 
       }); 
      }); 
      $("#more").off("click").on("click", function() 
      { 
       $("#aj_load").fadeOut("slow",function() 
       { 
        slideDW(num_seq); 
        loadNEXT(xmlURL,"next"); 
       }); 

      }).fadeIn("slow"); 
     } 

    } 
}).delay(300).fadeIn("slow",function(){inAnimation();}); 
} 
+0

「loadXML」のコードを投稿してください – bfavaretto

+0

完了しました。おかげで – Ivan

+1

あなたのjavascriptの可能性のある問題を除いて、私はライブサイトをチェックし、それは本当にほとんどのページの404を返しています。まず、ページが存在し、通常のリクエスト(ブラウザのアドレスバーに直接URLを入力してテストする)でアクセス可能であることを確認する必要があります。あなたは「about」、「formazione」と「contatti」ページは存在し、他は存在しません。 – bfavaretto

答えて

1

それはだあなたが実際にあなたが退色している​​要素のIDを取得しているボタンのIDを取得するために$(this)を使用するときため。 ...代わりにこれを試してみてください

$("#menubar .button").live("click",function() { 
    var buttonID = $(this).attr("id"); 
    $("#aj_load").fadeOut("slow", function() 
    {     
     loadXML('archive/' + buttonID + '.html'); 
    }); 
}); 

編集:ちょうどあなたのスクリプトは、オンザフライと上記正常に動作修正。それもいいように見えます。 )私はサイトを再構築するときにそのアイデアを挟むかもしれないと思う;)

+0

ええ、そうですよ!私は本当に夢中になっていた!私はもう1杯のコーヒーを買うつもりだと思う。どうもありがとう! – Ivan

+0

あなたが見ることができないほど明白なことがある時はいつも楽しいです!仲間を助けるために嬉しい:) – Archer

関連する問題