我使用Select2-4.0.0和
$gameSelect.select2().on("change",function(e){....}
工作正常。
但是,当我将其关闭后('更改'),如:
$gameSelect.select2().off('change').on("change",function(e){....}
触发事件,但所选项目在UI处不会更改。
为什么?
答案 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()
。这是不必要的,而且更短。