jQuery .removeClass() 失效原因及解决方法
可能是因为在调用 removeClass 之前,有其他代码修改了 li 元素的 class 属性,导致 removeClass 无法正常移除类名。
可以添加一个延迟执行的方法,等待其他代码执行完毕后再执行 removeClass,例如:
setTimeout(() => {
$('ul li').removeClass('active');
}, 0);
此代码使用 setTimeout 方法将 removeClass 的执行延迟到 0 毫秒后,这样可以确保其他代码执行完毕后再执行 removeClass,从而避免类名被覆盖或修改导致失效的问题。
此外,还可以考虑以下几点:
- 检查代码中是否有其他地方对
li元素的class属性进行修改。 - 确认
removeClass方法的调用时机是否正确。 - 尝试使用
addClass和removeClass的链式调用,例如:$('ul li').removeClass('active').addClass('new-class')。
通过以上方法,可以有效解决 jQuery 中 removeClass 失效的问题。
原文地址: https://www.cveoy.top/t/topic/mIBC 著作权归作者所有。请勿转载和采集!