gpt4 book ai didi

jquery加载回调函数失败

转载 作者:行者123 更新时间:2023-12-01 01:27:00 25 4
gpt4 key购买 nike

我一直在阅读有关此问题的几个问题,但没有找到解决我的问题的方法。抱歉,如果我重复之前被问过的问题。

在代码中:

$("#menuZone").load("northMenu.jsp", function(response, status, xhr) {
if (status == "error") {
var msg = "Error found: ";
alert(msg + xhr.status + " " + xhr.statusText);
}else{
// hide admin menus
$('.admin').hide();
}
});

我想做的是从'northMenu.jsp'加载无序列表并隐藏具有admin类的项目(li标签)。

在上面的代码中,具有该class的项目没有被隐藏,但是完整的html被完美地插入到中#menuZone

之后,调用其他地方的函数来显示和隐藏该项目就可以了。

jquery load doc说,“如果提供了完整的回调,则在执行后处理和 HTML 插入后执行它”。

所以,问题不应该是异步问题!或者可以吗?

最佳答案

this fiddle正在为您工作,这似乎不是您的浏览器的问题。假设您的代码中没有任何内容篡改 load() (恕我直言,这是一个合理的假设),那么只剩下两种可能的解释:

  1. $(".admin") 不匹配任何内容,因为来自 AJAX 请求的标记不包含 class 属性,并且这些属性是通过代码添加的某处。

  2. 这些元素实际上是隐藏的,但随后由代码的另一部分立即再次显示(您在问题的评论中提到了正在执行的其他 AJAX 请求)。

因此,我建议您通过添加 alert() 调用来检测您的 complete 回调:

// Hide admin menus.
$(".admin").hide();
alert($(".admin").length);

存在三种可能的结果:

  • 警报打印 0,这意味着 (1) 为 true
  • 警报打印一个大于 0 的数字,在这种情况下:
    • 在不关闭警报框的情况下,检查 .admin 元素是否可见,
      • 如果不是,则(2) 为真
      • 如果是,那么我没有想到的其他事情就是真的

关于jquery加载回调函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10855028/

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