javascript - 动态添加和删除元素样式的最佳方法

标签 javascript jquery css

我正在使用mouseentermouseleave一些元素上的事件来改变它们的外观。我可以使用以下两种策略之一来做到这一点:

  1. $(this).css('someProperty','someValue')添加然后 $(this).removeAttr('style')删除
  2. $(this).addClass('someClass')添加然后 $(this).removeClass('someClass')删除

最好的方法是什么?

最佳答案

当然是选项 2。样式应该在样式表中定义。

还有toggleClass ,如果该类存在,则将其删除;如果该类缺失,则将其添加。


注意: toggleClass 还允许您传入一个 bool 值作为第二个参数,告诉它是否添加或删除它(无论当前是否应用了该类) ),所以:

$(this).toggleClass('active', true);

完全等同于:

$(this).addClass('active');

当您的代码中已有 bool 值时,这非常方便。所以代替这个:

if (isUserActive()) {
    $(this).addClass('active');
} else {
    $(this).addClass('active');
}

你可以这样做:

$(this).toggleClass('active', isUserActive());

关于javascript - 动态添加和删除元素样式的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111445/

相关文章:

javascript - 幻灯片按钮和 $.backstretch 插件在 IE 中不起作用

javascript - 制作一个循环来显示按钮

javascript - 你们如何处理操作顺序很重要的复杂状态情况?

javascript - 选择的 jQuery 插件不起作用。

javascript - Leaflet清除geojson层(折线)

html - 粗体字体使宽度变化

javascript - 使用 Node.js 将数据库查询发送到网站

jquery - 通过添加和删除多个事件源来过滤事件

javascript - 如何将一个 HTML 页面加载到另一个具有 javascript 代码的页面中?

javascript - 如何在不同页面上具有不同背景图像的 Canvas 上使用相同的功能?