我每 1 分钟轮询一次 json 响应,并根据响应在页面上添加或删除覆盖。
我的反应大多数时候都是积极的,在这种情况下,我应该删除覆盖类。
在下面的代码中,else 部分每次都会执行,remove class 和 hide 函数每次都会执行。
有什么办法可以避免这种情况吗? 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);
})();
您可以使用toggle() https://api.jquery.com/toggle/ and toggleClass() https://api.jquery.com/toggleClass/ with Boolean
值不需要if...else
否则语句返回false
$("#overlay").toggleClass('show',data.is_running);
$("#alertDiv").toggle(data.is_running);
为了检查元素是否有类,您可以使用hasClass() https://api.jquery.com/hasClass/返回true
如果匹配的元素被分配给给定的类
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)