队列中的单个函数被调用多次,而应该被调用一次

时间:2011-01-23 19:34:27

标签: jquery animation queue slider jquery-animate

最近我开发了一个基于jQuery的自定义内容滑块,与大多数其他滑块不同,它不会在两个不相邻的项目之间转换时显示多个图片。它工作得很好,除了在动画尚未完成时点击多个选择器将一切都搞砸了。我决定实现一个排队机制,可以延迟动画开始直到另一个动画结束。但是,等待我的问题更多。由于一些奇怪的原因,排队的函数在出列时被调用五次而不是一次。你可以在这里看到这个:http://jsfiddle.net/QLLKt/embedded/result/。动画处于活动状态时单击任何幻灯片选择器。您现在应该看到函数排队的时间正在显示五次,即使它应该只显示一次。

我的问题是:为什么它的表现如此,是否有任何治愈方法?

1 个答案:

答案 0 :(得分:0)

原来问题的根源在于这些代码行:

 $('.selector').queue('queue', function () {
                    var d = new Date();
                    $('#result').append("<br/>" + "Queued at "+ d.getTime());

对“selector”类的查询返回六个元素。因此,它将一个函数放在eache元素的队列中,这导致函数被调用六次。