select2选择事件没有被解雇

时间:2013-07-09 14:25:40

标签: javascript jquery backbone.js jquery-select2 backbone-events

我在我的网站中使用Select2,我正在尝试使用select2-selecting事件,但它没有触发。我在应用中也使用了Backbone.js,所以我尝试的第一件事就是将select2-selecting添加到我的events对象中:

// '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调试控制台的事件侦听器中列出 - 它不会被触发。有没有人知道发生了什么?

3 个答案:

答案 0 :(得分:15)

您使用的是什么版本的select2

我遇到了同样的问题,直到我发现我使用的是3.3 select2-selecting事件不存在的情况。

这已包含在3.4版本中。

答案 1 :(得分:10)

早期版本也发生了变化,它更改了名称:

  • select2-close现在是select2:close
  • select2-open现在是select2:open
  • select2-opening现在是select2:opening
  • select2-selecting现在是select2:选择
  • select2-removed现在是select2:已移除
  • select2-removal现在是select2:取消选择

答案 2 :(得分:0)

即使是旧版本,@santi-iglesias'回答上列出的' select2-removed '和' select2-removal '事件也不存在即可。您已经“删除了”。另外,要获得受影响的optioin值,请使用“ event.val ”。

所以你可以这样做:

let $var := 'true'
if ($var = 'true') then
  let $var2 := 1
  let $var3 := $var1 + 1
  return 0
else ()

在v3.4.3检查。