Select2 off('change').on('change'.....) 无法更改所选选项

Jas*_*key 3 javascript jquery jquery-select2

我使用 Select2-4.0.0 和

$gameSelect.select2().on("change",function(e){....}
Run Code Online (Sandbox Code Playgroud)

工作正常。

但是当我将它链接起来(“更改”)时,如下所示:

$gameSelect.select2().off('change').on("change",function(e){....}
Run Code Online (Sandbox Code Playgroud)

事件被触发,但所选项目在 UI 上没有改变。

这是为什么?

Aru*_*hny 6

看起来 select2-4.0 正在向 select 元素添加自己的更改处理程序,当您说它off('change')也被删除时,这就是原因。

为了解决此类问题,我们有事件名称间距,因此,请为您的处理程序使用命名空间并使用它来删除它们,例如

$('#my-select').select2().off('change.mychange').on('change.mychange', function () {
    //your code
});
Run Code Online (Sandbox Code Playgroud)

演示:小提琴