BootStrap 按鈕載入狀態改變
阿新 • • 發佈:2019-01-30
專案前端使用了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();即可