Select2 off('change').on('change'.....) 无法更改所选选项
Select2 off('change').on('change'.....) does not able to change the selected option
我用的是Select2-4.0.0 并且
$gameSelect.select2().on("change",function(e){....}
工作正常。
但是当我将它链接起来时('change')像:
$gameSelect.select2().off('change').on("change",function(e){....}
事件已触发,但所选项目在 UI 没有更改。
这是为什么?
看起来 select2-4.0 正在向 select 元素添加自己的更改处理程序,当您说 off('change')
也被删除时,这就是原因。
为了解决此类问题,我们有事件 name spacing 因此,对您的处理程序使用命名空间并使用它来删除它们,例如
$('#my-select').select2().off('change.mychange').on('change.mychange', function () {
//your code
});
演示:Fiddle
要保留 select2 的设置,请使用此代码代替公认的解决方案:
$('#my-select').off('change.mychange').on('change.mychange', function () {
//your code
});
您不需要恢复 .select2()
。没必要,而且更短。
我用的是Select2-4.0.0 并且
$gameSelect.select2().on("change",function(e){....}
工作正常。
但是当我将它链接起来时('change')像:
$gameSelect.select2().off('change').on("change",function(e){....}
事件已触发,但所选项目在 UI 没有更改。
这是为什么?
看起来 select2-4.0 正在向 select 元素添加自己的更改处理程序,当您说 off('change')
也被删除时,这就是原因。
为了解决此类问题,我们有事件 name spacing 因此,对您的处理程序使用命名空间并使用它来删除它们,例如
$('#my-select').select2().off('change.mychange').on('change.mychange', function () {
//your code
});
演示:Fiddle
要保留 select2 的设置,请使用此代码代替公认的解决方案:
$('#my-select').off('change.mychange').on('change.mychange', function () {
//your code
});
您不需要恢复 .select2()
。没必要,而且更短。