This question already has answers here:
jQuery $.animate() multiple elements but only fire callback once

(2个答案)


7年前关闭。




我了解您可以将一个函数传递给slideUp/slideDown,该函数将在转换完成后运行:
$('li').slideUp({
    complete: function(){
        alert('done');
    }
});

使用此HTML,警报将显示3次。
<ul>
    <li>[content here]</li>
    <li>[content here]</li>
    <li>[content here]</li>
</ul>

当最后一个列表项完成了slideUp时,是否有某种方法可以使complete函数仅触发一次? (fiddle)

最佳答案

您可以“重做”选择器,并检查this是否为最后一个:

$('li').slideUp({
    complete: function(){
        if($('li:last').is(this)){
            alert('done');
        }
    }
});

fiddle :http://jsfiddle.net/5NQsU/

缓存选择器会更好:
var $li = $('li');
$li.slideUp({
    complete: function(){
        if($li.last().is(this)){
            alert('done');
        }
    }
});

关于javascript - 仅在最后一项完成后才运行jQuery slideDown完成功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17709175/

10-09 18:22
查看更多