我有一个非常基本的Backbone问题。我想在单击一个元素时应用一个类(使用jQuery)。不幸的是我不知道如何使用Backbone视图执行此操作 - 我可以捕获click事件,但我不知道如何以jQuery可以理解的方式获取元素。
我的HTML看起来像这样:
<div id="options">
<ul>
<li>red</li>
<li class="selected">blue</li>
<li>green</li>
</ul>
</div>
更新 - 抱歉,我应该给出一个较少编辑的示例,真正的HTML实际上是这样的:
<li><img src="red.jpg"><h3>red</h3></li>
<li class="selected"><img src="blue.jpg"><h3>blue</h3></li>
<li><img src="green.jpg"><h3>green</h3></li>
我的Backbone代码如下所示:
var SearchFormView = Backbone.View.extend({
el: $('#options'),
events: {
"click li": "updateResults"
},
updateResults: function(e) {
console.log('updateResults');
$(this).toggleClass("selected");
}
});
它无法正常工作 - updateResults
正在登录到控制台,但该类未被应用。我认为这是因为我没有正确使用this
。感谢任何建议。
答案 0 :(得分:6)
在使用骨干事件时,将this
设置为视图。尝试使用e.target
代替this
。
答案 1 :(得分:1)
基于hajpoj的答案的评论,似乎你可能需要以下jQuery函数之一,应用$(e.target)的'li'元素(很难说没有确切的html):