かなり基本的なバックボーンの質問があります。要素がクリックされたときに (jQuery を使用して) クラスを適用したい。残念ながら、バックボーン ビューでこれを行う方法がわかりません。クリック イベントをキャプチャできますが、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>
そして、私のバックボーン コードは次のようになります。
var SearchFormView = Backbone.View.extend({
el: $('#options'),
events: {
"click li": "updateResults"
},
updateResults: function(e) {
console.log('updateResults');
$(this).toggleClass("selected");
}
});
そのままでは機能していません -updateResults
コンソールにログが記録されていますが、クラスは適用されていません。使い方が間違っているからだと思いますthis
。アドバイスに感謝します。