2011-05-04 120 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