jquery - 如果元素有类,则添加类,如果没有,则删除
问题描述
当元素具有“活动”类(由引导导航功能分配)时,我需要向元素添加一个类,并在引导程序删除该类时删除该类
我认为这样的事情会起作用,但它没有
if ($(".tree-parent > .tab-pane").hasClass("active")) {
$(this).addClass("d-flex");
}
else {
$(this).removeClass("d-flex");
}
编辑:正如我收到的一些评论中所建议的那样,问题在于脚本仅在页面加载时运行,而不是在实际添加/删除“活动”类时运行。谢谢
解决方案
这应该做。
$(function ($) {
const $el = $('.tree-parent > .tab-pane');
var mutationObserver = new MutationObserver(function(mutations) {
if ($el.hasClass('active')) {
$el.addClass('d-flex');
} else {
$el.removeClass('d-flex');
}
});
mutationObserver.observe($el[0], {
attributes: true
});
});
不要忘记检查是否选择了正确的元素。
推荐阅读
- reactjs - DragItemTypes 不是从“react-data-grid”导出的
- python - 如何将带有数字的列更改为反映与前一行列值按另一列值分组相关的变化的列?
- c# - C# WinForms 在所有表单中使用类的实例,每次都没有传递
- ios - 如何在 @IBAction 中调用 URL 数组?
- flutter - Flutter 提供程序不更新变量值
- java - Java Spring Boot - 将 Actuator Health Endpoint 的端口更改为自定义端口
- reactjs - 从选择组件内部编辑行或设置状态
- dart - 模式对象有什么用?
- javascript - 在 JSON 中添加字段不在接口 Vuejs 中
- django - 将外部数据与 Django 的数据库支持模型集成的设计模式