2014-03-12 49 views
-1

在此示例中,当slideUp完成时触发的函数看起来像循环一样,因为警报在此处熄灭两次。在我的脚本中,变量aaa设置为3:为什么这个函数的行为像循环?

$("ul.level" + aaa).slideUp(
    function() { 
     aaa --; 
     alert (aaa); 
    } 
); 

这是为什么?

+3

效果基本show()调用回调函数对每个匹配的元素[jQuery的回调 –

+0

可能重复被称为多时间](http://stackoverflow.com/questions/909526/jquery-callbacks-being-called-multiple-times) – undefined

回答

1

因为当aaa递减时将调用$("ul.level" + 2)

+0

好吧,奇怪,它循环......但无论如何感谢:) –

3

如果想效果基本show()回调仅被一劳永逸集调用,使用一个承诺:

$("ul.level" + aaa).slideUp().promise() 
.done(function() { 
    aaa--; 
    alert(aaa); 
}); 
+0

谢谢,多数民众赞成在精神上我想要什么首先! :d –