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。