2014-01-24 2 views
0

Я хочу, когда я нажму ссылку с атрибутом «linkdata» = «page», чтобы изменить код тела на загружаемое изображение и после того, как это сделано, чтобы изменить 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 - с помощью CodeIgniter, попытался с .fail(function() { window.location="/error/404" });)

+1

напишите вот так: '$ ('a [linkdata =" page "]'). Click (function() {' .. не писать каждую, а затем щелкнуть функцию. – Krishna

+0

На этот объект больше кода , поэтому я использую .each перед этим. – 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/. Как-то вы всегда получаете какую-то ошибку с пустым ответомText –

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

Не могли бы вы объяснить, почему это решение? –

Смежные вопросы