【问题标题】:select2-selecting event not getting firedselect2-selecting 事件没有被触发
【发布时间】:2013-07-09 14:25:40
【问题描述】:

我在我的网站中使用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 调试控制台的事件侦听器中 - 它只是不会被触发。有人知道发生了什么吗?

【问题讨论】:

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


    【解决方案1】:

    你使用的是什么版本的select2

    我遇到了同样的问题,直到我意识到我使用的是不存在此 select2-selecting 事件的 3.3 版本。

    这已包含在 3.4 版本中。

    【讨论】:

    • 我正在使用 select2 3.4.3,我遇到了同样的问题,没有触发任何事件!
    【解决方案2】:

    早期版本的名称也发生了变化:

    • select2-close 现在是 select2:close
    • select2-open 现在是 select2:open
    • select2-opening 现在是 select2:opening
    • select2-selecting 现在是 select2:selecting
    • select2-removed 现在是 select2:removed
    • select2-removing 现在是 select2:unselecting

    【讨论】:

    • 这对于 3.5 是正确的,不知道为什么文档不包含这个.....
    【解决方案3】:

    在更早的版本中,@santi-iglesias 上列出的 'select2-removed' 和 'select2-removing' 事件不存在强>。您改为“删除”。此外,要获取受影响的选项值,请使用“event.val”。

    所以你可以这样做:

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

    在 v3.4.3 检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-02
      • 2012-06-30
      • 2016-11-07
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多