私は1分ごとにjsonレスポンスをポーリングしており、レスポンスに基づいてページ上にオーバーレイを追加または削除しています。 私の反応はほとんどの場合正解です。この場合、オーバーレイクラスを削除する必要があります。 以下のコードでは、elseは毎回実行され、classとhide関数は毎回実行されます。 これを避ける方法はありますか? jqueryにクラスが追加されているかどうかを調べるメソッドはありますか?また、非表示になっているかどうかは非表示です。 誰かがブール変数を設定したり解除したりすることでこれを達成するための構文を与えることができます。jquery - 条件に基づいてクラスを削除する
(function poll() {
setTimeout(function() {
$.ajax({
url: "path",
type: "GET",
success: function(data) {
console.log("polling" + data);
if (data.is_running === true) {
$("#overlay").addClass('show');
$("#alertDiv").show();
} else {
console.log("removing ....");
$("#overlay").removeClass('show');
$("#alertDiv").hide();
}
},
dataType: "json",
complete: poll,
timeout: 200
})
}, 5000);
})();
使用hasClass法のようにコードを変更してください! –