【问题标题】:jQuery Div Not hiding after Ajax PostjQuery Div 在 Ajax Post 之后不隐藏
【发布时间】:2011-05-24 02:55:56
【问题描述】:

代码如下:

$('div#listing').slideUp(function(){
    $('div#img_loading').show(); //THIS WORKS
});

var jqxhr = $.post("process.php", {page: 1},
    function(data) {
        //some code
    });

jqxhr.complete(function(){
    $('div#img_loading').hide(function(){ //THIS HIDE FUNCTION DOES NOT WORK
        $('div#listing').slideDown(); //THIS LINE WORKS
    });
});

图像成功加载,但在 ajax 完成后它不会隐藏自身。奇怪的是 $('div#listing').slideDown() 有效,但 hide() 无效。

非常感谢!

【问题讨论】:

  • 我有同样的问题,隐藏按钮在 ajax 请求之前可以正常工作,但是如果我在 ajax 调用之后单击它,则隐藏不起作用

标签: jquery ajax hide show-hide


【解决方案1】:

我不认为你想要隐藏命令中的函数

$('div#listing').slideUp(function(){
    $('div#img_loading').show(); //THIS WORKS
});

var jqxhr = $.post("process.php", {page: 1},
    function(data) {
        //some code
    });

jqxhr.complete(function(){
    $('div#img_loading').hide();
    $('div#listing').slideDown();
});

【讨论】:

  • 是的。已经这样做了。但效果是一样的。我将 slideDown 函数放在 hide() 中,所以我确定隐藏图像后内容会显示
【解决方案2】:

请通读specificationshide jQuery API。在您的代码中,您试图指定一个回调,而您不需要这样做。只需按原样使用:

$('div#img_loading').hide();

编辑: 或者,您可以将上面的代码放在 ajax 回调函数中:

var jqxhr = $.post("process.php", {page: 1},
    function(data) {
        //some code
        $('div#img_loading').hide();
    });

【讨论】:

  • 那么,如何确保 ajax 完成后图像会加载?
  • 给我们看一些 html 可能会有帮助。
猜你喜欢
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
相关资源
最近更新 更多