我正在尝试做一些看似简单的事情——向活动主干元素添加一个类。我要使用的代码是:
this.$el.addClass('classIWant');
但是,这并不总是有效。有时似乎如此,但并非总是如此。但是,这总是有效的。
var id = this.$el.attr('id');
$('#' + id).addClass('classIWant');
显然我不想要第二个示例,因为它严重依赖 HTML 和 DOM。有什么理由为什么第一个不应该工作,还是我错过了其他东西?
我正在尝试做一些看似简单的事情——向活动主干元素添加一个类。我要使用的代码是:
this.$el.addClass('classIWant');
但是,这并不总是有效。有时似乎如此,但并非总是如此。但是,这总是有效的。
var id = this.$el.attr('id');
$('#' + id).addClass('classIWant');
显然我不想要第二个示例,因为它严重依赖 HTML 和 DOM。有什么理由为什么第一个不应该工作,还是我错过了其他东西?
似乎this
指向了一些错误。如果您在 function 中运行此代码myFunc
,则只需添加到initialize
下一行:
_.bindAll(this, 'myFunc');
并得到了你的第一个方法,this.$el.addClass('classYouWant')
。
此代码应该可以工作:
this.$el.addClass('classIWant');
但前提是它存在于您的 onRender() 函数或任何在 onRender() 之后调用的函数中。如果您的初始化函数中有此代码,那么它将无法工作,因为该视图的 dom 尚未生成