1

我正在尝试做一些看似简单的事情——向活动主干元素添加一个类。我要使用的代码是:

 this.$el.addClass('classIWant');

但是,这并不总是有效。有时似乎如此,但并非总是如此。但是,这总是有效的。

 var id = this.$el.attr('id');

 $('#' + id).addClass('classIWant');

显然我不想要第二个示例,因为它严重依赖 HTML 和 DOM。有什么理由为什么第一个不应该工作,还是我错过了其他东西?

4

2 回答 2

1

似乎this指向了一些错误。如果您在 function 中运行此代码myFunc,则只需添加到initialize下一行:

_.bindAll(this, 'myFunc');

并得到了你的第一个方法,this.$el.addClass('classYouWant')

于 2013-07-12T17:32:20.570 回答
0

此代码应该可以工作:

this.$el.addClass('classIWant');

但前提是它存在于您的 onRender() 函数或任何在 onRender() 之后调用的函数中。如果您的初始化函数中有此代码,那么它将无法工作,因为该视图的 dom 尚未生成

于 2013-07-17T01:36:36.293 回答