2012-02-27 97 views
1

我在我的新網站上使用jQuery和Ajax功能時發現了一個可能的錯誤,或者更可能是我的代碼上的一些大錯誤,這使我瘋狂。調試AJAX + Jquery網頁 - 內容的動態加載似乎不起作用

下面是進一步提供文件的網站的網址,當我調用函數loadXML的使用AJAX這種方式加載某些內容出現 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()函數,您可以在網站上看到它。

非常感謝,

編輯:

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 2012-02-27 17:20:39

+0

的代碼,希望它有幫助。謝謝 – Ivan 2012-02-27 17:23:46

+1

除了你的javascript可能出現的問題,我查了一下實時網站,它確實爲大多數頁面返回404。首先,您必須確保頁面存在並且可以通過正常請求訪問(通過直接在瀏覽器地址欄中輸入URL進行測試)。你'約','formazione'和'contatti'頁面確實存在,其他的則不存在。 – bfavaretto 2012-02-27 17:30:52

回答

1

這是因爲當你使用$(this)讓你實際上得到你衰落元素的ID按鈕ID。試試這個...

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

編輯:只是修改你的腳本上即時與上述工作正常。它看起來不錯。想當我重建我的網站時,我可能會捏住這個想法;)

+0

是的,沒錯!它真的讓我瘋狂!我想我會再喝一杯咖啡。非常感謝! – Ivan 2012-02-27 17:52:18

+0

當有什麼顯而易見的東西看不見時,總是很有趣!很高興幫助隊友:) – Archer 2012-02-27 17:56:46