2012-04-09 26 views
1

我有一些使用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 get的所有内容都被重新加载,但内部跨度不会被隐藏,它们会重新出现,并且我无法弄清楚如何通过Ajax重新加载后隐藏它们。

回答

5

正如您可能(\应该)知道的那样,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() { 

    } 
});​ 

loaddocs

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

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

@Talon。 **除非有其他问题,否则不能**。 – gdoron 2012-04-09 20:22:51

+1

想通了,我确实有其他问题,它现在工作,谢谢 – Talon 2012-04-09 20:26:10

+1

@Talon。我的水晶球就像一个魅力...... **; - )** – gdoron 2012-04-09 20:27:28

1

您需要将$('.classname').hide();加入​​的回调函数中。现在,它试图在元素存在于页面之前隐藏元素。试试这个:

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

     } 
}); 
相关问题