仅在最后一项完成后运行jQuery slideDown完成功能

时间:2013-07-17 20:02:41

标签: javascript jquery

据我所知,您可以将一个函数传递给slideUp / slideDown,该函数将在转换完成后运行:

$('li').slideUp({
    complete: function(){
        alert('done');
    }
});

使用此HTML会显示3次警报。

<ul>
    <li>[content here]</li>
    <li>[content here]</li>
    <li>[content here]</li>
</ul>

last 列表项已完成slideUp时,是否有某种方法让complete函数仅触发一次? (fiddle

2 个答案:

答案 0 :(得分:13)

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

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

小提琴:http://jsfiddle.net/5NQsU/

缓存选择器会更好:

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

答案 1 :(得分:2)

http://jsfiddle.net/Ultimate/KrW5a/

var total = $('ul').size();
var i = 1;
$('li').slideUp({
    complete: function () {
        if (i === total) alert('done');
        i += 1;
    }
});