javascript - 如何隐藏 Jquery 中已使用 .load 函数加载的元素

标签 javascript jquery ajax callback jquery-load

我有一些使用 JQuery 加载函数更新的类。当页面首次加载时,我将它们作为目标并像这样隐藏它们:

$('.classname').hide();

我像这样执行 ajax load:

$.ajax({  
  type: "GET",  
  url: "index.php",  
  data: dataString,  
  success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass');
      $('.classname').hide();
  },
      error: function() {

      }  
});

为了简单起见,html 是这样的:

<div class="wrapperClass">
    <span class="classname">Content 1</span>
    <span class="classname">Content 2</span>
</div>

问题是,wrapperClass 中的所有内容都可以重新加载,但内部的 span 不会被隐藏,它们会重新出现,我不知道如何在它们出现后隐藏它们已通过 Ajax 重新加载。

最佳答案

您可能(\应该)知道,load 是一个 ajax 请求,因此当您试图隐藏元素时,它们不会被加载。

将处理加载内容的代码移到完成回调中:

success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass', function(){
              $('.classname').hide();              
          });
      }

完整代码:

$.ajax({
    type: "GET",
    url: "index.php",
    data: dataString,
    success: function() {
        $('.wrapperClass').load('index.php .wrapperClass', function() {
            $('.classname').hide();
        });
    },
    error: function() {

    }
});​

加载 docs :

.load( url [, data] [, complete(responseText, textStatus, XMLHttpRequest)])

  • url 包含请求发送到的 URL 的字符串。
  • data 随请求一起发送到服务器的映射或字符串。
  • complete(responseText, textStatus, XMLHttpRequest) 请求完成时执行的回调函数。

关于javascript - 如何隐藏 Jquery 中已使用 .load 函数加载的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079238/

相关文章:

javascript - 将 var 设置为 .text()

javascript - Ajax实时更新span

javascript - Jquery表不显示

javascript - 如何使用变量名执行函数?

javascript - 使用 AJAX 始终更新内容

javascript - IE 不为 GET 表单上的电子邮件输入传递 @ 符号

javascript - 文本框的长度属性从不使用 JQuery 返回 0

ajax - 客户端 AJAX 调用错误的一般处理

ajax - node.js 表达 ajax session

javascript - restangular multiple promise Jasmine