基本的に、現在のコンテンツをフェードアウトし、コンテンツをajaxリクエストの結果に置き換えてから、コンテンツをフェードインします.
私の関数はほとんどのページで正常に動作しますが、何らかの理由で特定のリクエストでコンテンツがロードされていますが、ajax 成功関数が呼び出されていないため、コンテンツはロードされていますが、非表示のままです。
これが私のコードです。診断の目的で、ajaxの成功関数をアラートに置き換えましたが、これは同じページで実行されていません(ただし、ajaxコンテンツはロードされています):
var loadUrl=b_url+page;
if (History.enabled) {History.pushState({state:2}, page, "/"+page);}
window.name=page;
$.ajax({
cache: false,
async: false,
type: "POST",
url: loadUrl,
dataType: "html",
beforeSend: function() {
$('.contentarea').animate({
'opacity' : 0
}, 180, 'jswing', function(){
$('#mainc').hide(350, 'jswing');
});
},
success: function(response) {
$('#mainc').html(response);
alert('success')
},
failure: function(msg) {
alert('FAIL');
}
});
上記のコードでは、成功または失敗のメッセージが問題のページに表示されていませんが、次の行を削除すると:
$('#mainc').html(response);
その後、成功メッセージが表示されます。読み込まれているコンテンツは html のページであり、(ドキュメント内にあるという意味で) うまく読み込まれているように見えます。すべてのページバーは正常に動作するため、返される内容に問題があると思われます (ただし、ドキュメントには正常にロードされます) - ロードされるコンテンツは、codeigniter を使用してパーシャルのロードから構築されるため、ここで私の質問はどのように行われると思いますか?何が問題なのかを突き止めます。ドキュメントの準備ができている関数にこれを追加しようとしましたが(同様の投稿を読んだことがあります)、何もしません:
$(document).ajaxError(function(e, xhr, settings, exception) {
alert('error in: ' + settings.url + ' \n'+'error:\n' + xhr.responseText );
});
ここで問題が何であるかを見つける方法についてのアイデアはありますか?