2011-05-04 122 views
0

我想隱藏一個元素,然後用ajax隱藏一個元素並替換它的內容,並且作爲回調,我想再次顯示該元素。不幸的是,請求完成後,回調會被忽略:元素不會再次顯示。jQuery隱藏元素,在其中加載Ajax,然後顯示元素

這裏是我的代碼,希望我在我的問題明確:

//element is visible 
$("#play").hide();//element becomes hidden 
$("#play").load("page", function(data){ 
    $("#play").show();//element should be visible again, but it isn't 
}); 
+0

請求是否成功? – locrizak 2011-05-04 15:57:37

+0

該URL是否包含ID爲「play」的元素(如果含有該元素可能導致此問題)? – 2011-05-04 15:57:43

回答

0

你的代碼是正確的。進行Ajax調用時發生錯誤。

  • 你確定你的網址是正確的?使用GET方法
  • load的請求,並在服務器腳本允許得到什麼?
  • 你肯定有沒有任何錯誤的服務器端?如果發生這種情況,您的回調將不會執行。

在你的內部功能把一個「警告」將讓你展現請求是否成功:

$("#play").load("page", function(data){ 
    alert('success'); 
    $("#play").show();//element should be visible again, but it isn't 
}); 

我希望這有助於。

+0

.load()回調執行不管響應狀態 – Andre 2011-05-04 16:03:33

+0

我的要求是成功的。因此,'#play'包含了來自ajax的請求內容,但它仍然是不可見的。 – linkyndy 2011-05-04 16:05:32

0

網址,「網頁」可能還含有一種元素的ID,「玩」。嘗試將$("#play")存儲在一個變量中。

//element is visible 
var $play = $("#play"); 
$play.hide();//element becomes hidden 
$play.load("page", function(data){ 
    $play.show();//element should be visible again, but it isn't 
}); 
+3

你可以使用$(this).show(); – Andre 2011-05-04 16:00:34

+0

@Andre,那也可以:-) – 2011-05-04 16:05:00

+0

不幸的是,同樣的問題。但我很確定URL和ID之間沒有任何衝突。 – linkyndy 2011-05-04 16:07:36