toggleclass和addclass之间的区别

时间:2011-12-01 13:50:13

标签: jquery addclass toggleclass

我正在使用jquery并尝试在表中选择该表行时添加一个类。

我最初使用以下代码 -

$(this).parents("tr").toggleClass("over", this.clicked);            

出于某种原因,这在仅在已经分配了类的一些实例中不起作用。 在我对任何故障排除过于疯狂之前,我将其更改为以下内容 -

$(this).parents("tr").addClass("over", this.clicked);           

这个新选项似乎运行正常。

我的问题是上面的一个选项是否比另一个更好.....我应该使用toggleClass而不是addClass,还是addClass足够?

感谢您的任何想法。

4 个答案:

答案 0 :(得分:12)

addClass就是这样,将类添加到元素中。

另一方面,

toggleClass切换类,切换它,如果它在那里删除它,否则添加它,但可选地采用布尔值(true / false)来确定是否应该添加对象(true )或删除(假)。

toggleClassthis.clicked的情况下,

false可能不适合您,这是预期的行为。您在addClass中传递的参数无效,因为它总是会添加该类。

结论:

使用toggleClass切换课程,使用addClass添加课程。

答案 1 :(得分:4)

如果addClass对您有效,那么您应该坚持下去。这些方法用于不同的目的。 addClass确保元素上存在特定的类,而toggleClass如果不存在则添加类,如果是,则删除它。

查看API参考以获取每种方法的完整说明:

答案 2 :(得分:3)

没有必要将第二个参数传递给.addClass() - 它总是会添加该类。

如果这是你想要的行为,那就是正确的方法。

答案 3 :(得分:1)

真的取决于。如果你不打算删除课程,我会坚持使用addClass。当然,toggleClass允许您切换类。