2011-01-23 92 views
0

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

我的问题是:为什么它的行为像这样,是否有任何治疗方法?

回答

0

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

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

上的“选择器”类查询返回六个元素。因此它在eache元素的队列中放置了一个函数,这导致函数被调用了六次。