jquery - 根据条件删除类

Jav*_*ser 7 html javascript css jquery

我每1分钟轮询一次json响应,并根据我在页面上添加或删除叠加层的响应.我的回答大部分时间是积极的,在这种情况下,我应该删除覆盖类.在下面的代码中,除了每次执行部分并且每次都执行删除类和隐藏函数.有没有办法避免这种情况.在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);
})();
Run Code Online (Sandbox Code Playgroud)

Pra*_*lan 13

您可以使用toggle(),并toggleClass()Boolean价值没有必要的if...else声明,否则返回false

$("#overlay").toggleClass('show',data.is_running);
$("#alertDiv").toggle(data.is_running);
Run Code Online (Sandbox Code Playgroud)

并且为了检查元素是否具有类hasClass(),true如果匹配的元素被赋予给定的类,则可以使用哪个返回


cfi*_*her 3

您可以使用以下命令检查元素是否具有特定类hasclass()

var overlay = $('#overlay');

if (overlay.hasClass('show')) {
  overlay.removeClass('show');
}
Run Code Online (Sandbox Code Playgroud)

但你可以使用toggle()and toggleClass(),请参阅Pranav 的回答