weixin_33713350 2014-12-28 14:34 采纳率: 0%
浏览 93

Ajax jquery之后的FadeIn

I have a problem with an animation (fadeIn). It doesn't work after ajax. There is just NO ANIMATION but the content appears.

My code is like:

function ajax(varia) {

    return $.ajax({

        dataType: "html",
        async: false,
        type: 'POST',
        url: 'index.php?fn=' + varia,
        data: { token: "mytoken" }

    });

}

Function with ajax works fine...

ajax("login").done(function (data) {

    $("body").prepend(data);

}).done(function () {

    // The #login have atribute style="display: none;"
    $("#login").fadeIn(500); 

});

This problem can be resolved with using delay before the fade, but i think it should be fine without this. Why it's not?

  • 写回答

4条回答 默认 最新

  • csdn产品小助手 2014-12-28 14:42
    关注

    Did you try to put both calls into the same .done()-Block?

    I think this should work:

    ajax("login", "html").done(function (data) {
    
        $("body").prepend(data);
    
        // The #login have atribute style="display: none;"
        $("#login").fadeIn(500); 
    
    });
    

    In this case it should be guaranteed that the two lines of code are executed successively.

    I've made an live example here: http://jsfiddle.net/xLo93d29/ For me it works.

    评论

报告相同问题?