jQuery Div在Ajax Post之后没有隐藏

时间:2011-05-24 02:55:57

标签: jquery ajax hide show-hide

以下是代码:

$('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()没有。

非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为你不想在你的隐藏命令中使用一个函数

$('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();
});

答案 1 :(得分:0)

请仔细阅读hide jQuery API的specifications。在您的代码中,您尝试指定回调,您无需这样做。只需按原样使用:

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

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

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