2014-01-24 125 views
0

我希望當我點擊一個屬性爲「linkdata」=「page」的鏈接將body的代碼改變爲加載圖片,並在完成後將整個文檔的HTML改爲結果。下面是當前代碼我有:jQuery Ajax頁面加載失敗

$('a[linkdata="page"]').each(function() { 
    $(this).click(function() { 
    var attribute = $(this).attr("href"); 
    $("body").html('<center><img src="/ajax-loader.gif" /></center>'); 
    $.ajax({ type: "GET", url: attribute }).done(function (data) { 
     $(document).html(data); 
    }); 
    return false; 
    }); 
}); 

結果: 它改變身體的HTML代碼,圖像,始終未能與請求(這是http://somelink.com/home - 使用笨,與.fail(function() { window.location="/error/404" });試過)

+1

這樣寫''('a [linkdata =「page」]')。click(function(){'..不寫每個然後單擊函數 – Krishna

+0

該對象還有更多的代碼,這就是爲什麼我使用每個。 – user3174947

+2

不拖車,只是對學習目的感到好奇 - 通過ajax刷新整個文檔而不是鏈接到頁面或強制刷新的意義何在? – Dutchie432

回答

0
$('a[linkdata="page"]').click(function(e){ 
    e.preventDefault(); 
    $("body").html('<center><img src="/ajax-loader.gif" /></center>'); 
    $.ajax({url:$(this).attr("href") }) 
    .success(function(data){$(document.body).html(data);}) 
    .error(function(x,s,e){alert('Warning! '+s+': '+e)}); 
}); 
+0

與此代碼相同的效果。 – user3174947

+0

請參閱http://jsfiddle.net/NE6aC/。不知何故,你總會遇到一種空的responseText –

0
$('a[linkdata="page"]').on('click',function(k,v){ 
    var attribute = $(this).attr("href"); 
    $("body").html('<center><img src="/ajax-loader.gif" /></center>'); 
    $(document).load({ type: "GET", url: attribute }); 
    }) 
+0

結果再次沒有變化。 – user3174947

+1

你能闡明爲什麼這是解決方案嗎? –