私はいつもこのようなものを使用しました:
$("a.button").click(function() {
data = ...;
url = ...;
$.post(url, data, function() {
$(this).toggleClass('active');
});
});
問題は、ユーザーの接続が遅く、そのボタンをクリックすると、何も実行されないように見えることです。これactive
は、リクエストが完了すると、ボタンが自身のステータスを変更する(クラスを追加する)ためです。もちろん、リクエストの読み込み中にスピナーを追加することで、この動作を「修正」できます。
今これをチェックしてください:
$("a.button").click(function() {
$(this).toggleClass('active');
data = ...;
url = ...;
$.post(url, data, function() {
// if request is successful do nothing
// else, if there's an error: $(this).toggleClass('active)
});
});
つまり、ボタンを押すとすぐにボタンの状態を変更し、その後、成功/エラーをチェックします。これは良い方法ですか?あなたが考えていること?他の方法はありますか?