我有兩個按鈕(「批准」,「取消批准」)和加載微調器的圖像。默認情況下顯示批准按鈕,隱藏未批准按鈕和加載微調器圖像。jquery toggleClass無法在img元素上工作
當單擊「批准」按鈕時,我希望它消失,顯示加載微調器,然後執行ajax請求。完成請求後,我想讓加載微調器圖像再次隱藏。如果ajax請求成功,我想要顯示「Unapprove」按鈕。如果ajax請求失敗,我希望「批准」按鈕再次顯示。
我遇到的問題是,在完成ajax請求後,我的.always()方法會運行,但是微調器圖像不會隱藏。這裏有一個例子:
https://jsfiddle.net/ebme6fjs/7/
如果我改變我的Ajax請求給我一個404未找到錯誤的URL,這個過程就像它應該:
https://jsfiddle.net/ebme6fjs/8/
不任何人都知道爲什麼在我的第一個案例中,spinner.toggleClass("hide");
命令沒有在always()函數中運行?謝謝。
UPDATE: 我發現一個有趣的事情是,如果我重新定義了我的微調可變的。總是()函數,它工作正常上一個成功的Ajax請求:
https://jsfiddle.net/ebme6fjs/9/
如果您修改ajax url以接收404,但是,同樣的問題不會消失再次發生。
在完成後,您正在圖像上隱藏隱藏類,您應該使用:var otherButton = currentButton.siblings(「button」);'您的UPDATE jsFiddle是錯誤,在總是回調中,'this'不是指單擊元素,而是jqXHR選項。所以事實上,你不會在總是回調中切換圖像類,**只是在完成 –
請在這裏發佈代碼。如果JSFiddle決定打包,那麼你的問題對於在 – mplungjan
@ A.Wolff之後來臨的人來說毫無價值,你注意到我正在調用siblings()而不是兄弟(「按鈕」)來找到正確的問題。如果你想回答我可以標記你的正確。謝謝! –