可能是因为在调用 removeClass 之前,有其他代码修改了 li 元素的 class 属性,导致 removeClass 无法正常移除类名。

可以添加一个延迟执行的方法,等待其他代码执行完毕后再执行 removeClass,例如:

setTimeout(() => {
  $('ul li').removeClass('active');
}, 0);

此代码使用 setTimeout 方法将 removeClass 的执行延迟到 0 毫秒后,这样可以确保其他代码执行完毕后再执行 removeClass,从而避免类名被覆盖或修改导致失效的问题。

此外,还可以考虑以下几点:

  • 检查代码中是否有其他地方对 li 元素的 class 属性进行修改。
  • 确认 removeClass 方法的调用时机是否正确。
  • 尝试使用 addClassremoveClass 的链式调用,例如:$('ul li').removeClass('active').addClass('new-class')

通过以上方法,可以有效解决 jQuery 中 removeClass 失效的问题。

jQuery .removeClass() 失效原因及解决方法

原文地址: https://www.cveoy.top/t/topic/mIBC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录