4

我使用Select2在我的網站,我試圖用select2-selecting事件,但其不點火。我也是在應用程序中使用Backbone.js,所以我想的第一件事就是加入select2-selectingevents對象:沒有得到選擇2,選擇觸發的事件

// 'change .city':'cityChanged' 
'select2-selecting .city':'cityChanged' 

請注意,我有一個change事件註釋掉 - 這change事件工作正常。在Select2的文檔中,select2-selecting事件直接把對象上,而不是像這樣:

$('.city').select2().on('select2-selecting', function(e){ 
    console.log('here'); 
}); 

相反,它應該這樣使用:

$('.city').on('select2-selecting', function(e){ 
    console.log('here'); 
}); 

我也曾嘗試加入事件都是這些方式,但事件並未觸發(我做了檢查,並且在添加事件之前在之前在DOM 上創建了該元素)。

當我在第一個方法中使用Backbone.js添加事件時,事件在chrome調試控制檯的事件偵聽器中列出 - 它不會被觸發。有沒有人有一個想法是怎麼回事?

回答

14

您使用的是select2的哪個版本?

我有同樣的問題,直到我意識到我用的是3.3的版本,其中該select2-selecting事件不存在。

這已包含在3.4版本中。

9

有早期版本的變化也是在它改變名稱:

  • 選擇2 - 關閉現在是選擇2:關閉
  • 選擇2開現在選擇2是:開放
  • 選擇2開現SELECT2:開口
  • SELECT2-選擇現在SELECT2是:選擇
  • SELECT2-除去現在SELECT2:除去
  • SELECT2去除我Š現在選擇2:取消選擇
+1

這是正確的3.5,不知道爲什麼文檔不包括此..... – NDM

0

在更老的版本中,「選擇2層去除」和「選擇2去除」上@santi-iglesias「答案不存在列出的事件。代之以'刪除'。此外,要獲取受影響的選項值,請使用'event.val'。

所以,你可以做這樣的事情:

$('.select').on('select2-selecting removed', function(evt) { 
    var value = evt.val; //do something with this 
}); 

經過在v3.4.3。