2012-04-09 25 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() { 

     } 
}); 
相關問題