FadeOut回调不会等到完成

时间:2013-03-07 10:28:18

标签: jquery fadeout jquery-callback

我有两个一起工作的功能。一个到fadeOut()一个可见文章,一个到fadeIn()一个新文章在前一个文章完成后褪色。不知何故,第二个函数不会等待第一个完成。我的代码如下:

itemFadeTo: function( item ) {

    $( '#item_container article:visible' )
    .stop(true, true)
    .fadeOut( 750, $().itemFadeIn( item ) );

},

itemFadeIn: function( item) {

    $( item )
    .css({ opacity: 0 })
    .show()
    .stop(true, true)
    .animate({ opacity: 1}, 750);

}

如下所示:

var new_item= $( 'article#new_item' );

$().itemFadeTo( new_item);

任何帮助将不胜感激!

谢谢, Knal

1 个答案:

答案 0 :(得分:0)

问题是.fadeOut()期望函数作为其第二个参数,但是你没有传递函数,你是调用函数并将其结果作为第二个参数传递:

.fadeOut( 750, $().itemFadeIn( item ) );

这意味着$().itemFadeIn( item)部分在调用.fadeOut()之前发生了

请改为尝试:

.fadeOut( 750, function() { $().itemFadeIn( item ); });