ボタンのクリックをトリガーする機能があります(公開/非公開ボタンを想像してください)
関数がロードされるとすぐに、要素をローダーgifに変更します
function updateStatus(event, status, element, data, action) {
//init loader
$("#" + element).find("img").attr("src", "../../img/images/loader.gif");
それはうまくいきます
次に、データを渡す ajax リクエストを実行します (残りを介してデータベースを更新できます)
var request= $.ajax({
type: 'get',
url: "../testResponses/status.php",
data:data
});
繰り返しますが、それで問題ありません。リクエストが完了したら、画像を変更できます
request.done(function(msg) {
$("#" + element).find("img").attr("src", "../../img/images/status/"+newStatus+".png");
$("#" + element).attr("data-user-status", newStatus);
});
これはまだ概念実証であるため、ローダーの画像が消えて新しいステータスが表示されるまでに 2 秒の遅延を追加したいと考えています。
私は試した
request.delay(2000).done ...
エラーを返し、
$("#" + element).delay(2000).find("img").attr("src", "../../img/images/status/"+newStatus+".png");
違いはありませんでした..
誰でも助けることができますか?