在重新开始之前等待function完成
早上好,
每次用户按下按钮时,我都会尝试调用相同的function。 这是目前发生的事情..
用户点击按钮 – >调用函数 – >函数需要1000ms +才能完成(由于使用jQuery和AJAX调用动画)
我想要发生的是每次用户按下按钮时,它会将function添加到队列中,等待上一次调用完成,然后启动..
这可能吗?
对不起,如果我的解释有点令人困惑..
谢谢马修
由于函数是对象,因此可以存储属性。 你可以让函数在每次调用(按下按钮)时自动增加一个’queue’属性,然后在函数执行结束时检查它自己的队列属性是否> 0,如果是,则减少队列属性一个并使用setTimeout
再次调用自身。
你可以为制作动画的人添加一个回调函数,一旦动画完成它所调用的回调,你就可以做你想做的事。
以下是jquery文档中的一个示例:
$('#clickme').click(function() { $('#book').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000, function() { // Put your code here, so it will be executed once the animation completes }); });
PS:早上好吗? 快到午夜了; D
您可以跟踪每次用户按下按钮时添加到队列的全局队列/数组,然后您需要在函数中进行回调(例如在jQuery的success
回调中)以执行要检查的工作队列并调用队列中的下一个函数。
我最近不得不在自己的应用程序中执行此操作。 我给你的最佳建议是(假设你已经在JavaScript函数中进行了AJAX调用)将回调函数参数传递给JavaScript函数。 然后,在AJAX调用的success
部分中,调用您的回调函数。
例:
// In HTML
单击按钮时禁用该按钮。 在ajax例程完成时启用它。