据我所知,您可以将一个函数传递给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)
答案 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;
}
});