簡體   English   中英

Backbone.js:在視圖中的單擊事件上應用jQuery類?

[英]Backbone.js: apply class with jQuery on click event in view?

我有一個非常基本的骨干問題。 我想在單擊元素時應用一個類(使用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 感謝任何建議。

當使用骨干事件時, this設置為視圖。 嘗試使用e.target代替this

根據hajpoj答案的評論,似乎您可能需要以下jQuery函數之一,並為$(e.target)的'li'元素應用該函數(如果沒有確切的html很難說):

  1. .parents('li')
  2. .closest('li')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM