我不明白为什么fadeOut有效,但remove无效。我发现这是数组的问题。我尝试了一些组合,但无法使其正常工作。

for (var i=0;i<fieldsblock.length;i++){
     $("#"+fieldsblock[i]+"_tr"+nid).fadeOut();
     t=setTimeout(function(){$("#"+fieldsblock[i]+"_tr"+nid).remove();},400);
    }


谢谢。

最佳答案

看起来您只需要remove一旦fadeOut完成就可以运行。如果是这种情况,则无需使用setTimeout。您可以改用回调:

for (var i=0;i<fieldsblock.length;i++){
    $("#"+fieldsblock[i]+"_tr"+nid).fadeOut(function() {
        $(this).remove();
    });
}


每当动画完成时都会执行该回调,因此,如果您也想更改淡入淡出的持续时间,则这样做就不必更改setTimeout持续时间。

10-06 08:17