选择2关闭('更改')。开启('更改' .....)无法更改所选选项

时间:2015-04-29 03:19:09

标签: javascript jquery jquery-select2

我使用Select2-4.0.0和

$gameSelect.select2().on("change",function(e){....}

工作正常。

但是,当我将其关闭后('更改'),如:

$gameSelect.select2().off('change').on("change",function(e){....}

触发事件,但所选项目在UI处不会更改。

为什么?

2 个答案:

答案 0 :(得分:4)

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

要解决此类问题,我们有事件name spacing,因此,请为处理程序使用命名空间并使用它来删除它们,如

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

演示:Fiddle

答案 1 :(得分:0)

要保留select2的设置,请使用此代码代替可接受的解决方案:

$('#my-select').off('change.mychange').on('change.mychange', function () {
    //your code
});

您无需恢复.select2()。这是不必要的,而且更短。