jQuery的效果顺序问题

时间:2011-05-08 21:21:42

标签: jquery effects

我想fadeOut一个按钮,然后fadeIn响应一个Ajax调用。响应是一个新按钮。但是,以下代码的作用是fadeOut第一个按钮,将其淡入,然后将其替换为新按钮。我尝试了一些组合,但无法让它工作。我哪里出错了?

beforeSend: function()
{
    $(this).fadeOut("slow");
},

success: function(response)
{
    $(this).fadeIn("slow", function () {
        $(this).parent().html(response);
    });
}

3 个答案:

答案 0 :(得分:3)

AJAX调用中的

this不再是前一个元素。您必须将它存储在AJAX调用之前的var中,例如:

var button = $(this);

以后:

button.fadeOut();

等等。

答案 1 :(得分:1)

试试这个(请注意fadeOut上输入错误的“show”):

beforeSend: function()
{
    $(this).fadeOut("slow");
},

success: function(response)
{
    $(this).parent().html(response);
    $(this).stop().fadeIn("slow");
}

答案 2 :(得分:1)

$(this).parent().html(response);会有效消除this。所以改成它应该解决它:

$(this).parent().html(response);
$("#thething").stop().fadeIn("slow");

其中#thething是“this”的id

编辑:morgar也说。