gpt4 book ai didi

javascript - 正在加载 AJAX 内容,但未触发完整功能

转载 作者:行者123 更新时间:2023-12-02 19:20:28 27 4
gpt4 key购买 nike

我有一个通过ajax加载页面内容的函数,本质上是函数,淡出当前内容,用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 );
});

我该如何找出问题所在?

最佳答案

对于 .ajaxComplete - 您应该将其注册为正在加载的元素上的页面加载的一部分 - 所以

$('#mainc').ajaxComplete(function(){ alert('bob')})

可以是它的事件,而不是被埋在 .animate 函数中。否则该行:

$("#mainc").load(loadUrl);

可以直接包含您的 oncomplete 函数,而不是注册事件监听器。例如

$("#mainc").load(loadUrl, function(){ alert('bob' });

关于javascript - 正在加载 AJAX 内容,但未触发完整功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com