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

Tal*_*lon 1 javascript ajax jquery callback jquery-load

我有一些我用JQuery Load Function更新的类.当Page First Loads我瞄准它们并将它们隐藏起来时:

$('.classname').hide();
Run Code Online (Sandbox Code Playgroud)

load像这样做ajax :

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

      }  
});
Run Code Online (Sandbox Code Playgroud)

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

<div class="wrapperClass">
    <span class="classname">Content 1</span>
    <span class="classname">Content 2</span>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是,wrapperClassget 内部的所有内容都重新加载,但内部的跨度不会被隐藏,它们会重新出现,我无法弄清楚如何在通过Ajax重新加载后隐藏它们.

gdo*_*ica 5

正如您可能(\应该)知道的那样,load是一个ajax请求,因此当您尝试隐藏它们时,不会加载这些元素.

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

success: function() {  
      $('.wrapperClass').load('index.php .wrapperClass', function(){
              $('.classname').hide();              
          });
      }
Run Code Online (Sandbox Code Playgroud)

完整代码:

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

    }
});?
Run Code Online (Sandbox Code Playgroud)

load docs:

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

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