10

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

我最初使用以下代码 -

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

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

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

这个新选项似乎工作正常。

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

感谢您的任何想法。

4

4 回答 4

13

addClass这样做,将类添加到元素。

toggleClass另一方面,这样做,切换类,如果它存在则将其删除,否则添加它,但可选地采用布尔值(true/false)来确定是否应该添加(true)或删除(false)对象。

toggleClassthis.clicked在was的情况下可能对您不起作用false,这是预期的行为。您传入的参数addClass无效,因为它总是添加类。

结论:

用于toggleClass切换类,addClass用于添加类。

于 2011-12-01T13:52:41.453 回答
4

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

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

于 2011-12-01T13:53:51.807 回答
3

无需将第二个参数传递给 .addClass() - 它总是会添加类。

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

于 2011-12-01T13:53:25.987 回答
1

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

于 2011-12-01T13:53:00.280 回答