项目前端使用了bootstrap,想使用bootstrap的loading按钮作为ajax请求数据时的等待。参考bootstrap最新教程:
$(".btn").click(function(){
$(this).button('loading').delay(1000).queue(function() {
$(this).button('reset');
});
});
按钮第一次点击,如果出现错误后,重新执行
$btn.button('reset')
恢复按钮的可用状态。但是点击第二次时,会一直为loading.... 处于disabled="disabled" 禁用状态,按钮不能恢复。
后发现问题在queue()这个遍历方法上,queue() 方法显示或操作在匹配元素上执行的函数队列,队列运行在元素上异步地调用动作序列,而不会终止程序执行,
当通过 .queue() 添加函数时,应当确保最终调用了 .dequeue(),这样下一个排队的函数才能执行。
问题解决:将$(this).button('reset') 改为$(this).button('reset').dequeue();即可