jquery阻止动画队列建立

时间:2015-04-13 13:59:14

标签: javascript jquery animation

我有问题,如果用户在按钮上点击太快,动画队列就会继续堆积,以便它停止正常工作。我需要行为,当他点击按钮动画时,总是从头开始播放当前动画并忘记队列中的过去动画。

我尝试stop(true, true)clearQueue()添加到下面的代码中,但我这样做是基于运气,因为不能很好地理解jQuery并且在尝试数小时内没有成功。

var o, s, l;
e.animate = function(n, a, r, l, u) {
    o = u, s = [], i(n), t(".unddd").each(function(e, n) {
        Z.enqueue(function() {
            t(n).removeClass("unddd", 1, null, Z.dequeue)
        })
    }), Z.enqueue(function() {
        t(".unindicated").addClass("used_for_hand", o, null, Z.dequeue)
    }, t(".unindicated").size()), Z.enqueue(function() {
        t("#paybe").addClass("highlight"), Z.dequeue()
    }), Z.enqueue(function() {
    }), Z.startDequeue()
}, e.animateOut = function(e) {
    e ? Z.enqueue(function() {
        t(".status").hide(), t(".ble").addClass("discard", o, null, Z.dequeue)
    }, t(".ble").size()) : Z.enqueue(function() {
        t(".ble").not(".held").addClass("discard", o, null, Z.dequeue)
    }, t(".ble").not(".held").size()), Z.startDequeue()
}

2 个答案:

答案 0 :(得分:0)

你可以添加一个布尔检查" isRunning"并在动画功能期间将其设置为true,然后在动画完成时将其设置为false。

之后,在调用任何动画方法之前,只需检查isRunning == false。只有在动画尚未运行时才会运行。

答案 1 :(得分:0)

我设法解决了这个问题,通过点击后禁用onclick,并在动画结束后启用它