选择 select2 的 allowClear 选项时如何捕获事件?
Posted
技术标签:
【中文标题】选择 select2 的 allowClear 选项时如何捕获事件?【英文标题】:How to capture event when allowClear option of select2 is chosen? 【发布时间】:2015-03-19 20:58:38 【问题描述】:我已尝试捕获select2:clearing
事件
$("#my-select").on("select2:clearing", function (e)
console.log('cleared');
);
(jsfiddle)
但它没有被解雇。我也尝试过其他版本(如select2:removed
等,见another question 有类似问题),但它也不起作用。
我使用 select2 4.0.0-beta2。
【问题讨论】:
从未使用过这个库,但在文档中,事件名称中使用破折号而不是冒号,例如select2-清除 @MarioA,我尝试过破折号,但当前的文档(参见select2.github.io/examples.html,事件部分)说的是冒号。 【参考方案1】:select2 4.0.0-beta2 的更新日志指出:
删除的事件
select2-clearing - Use select2:unselecting instead
https://github.com/select2/select2/releases
【讨论】:
奇怪。事件 select2:selecting 正在工作,请参阅:jsfiddle.net/1vgLnjbb/1 我认为这是测试版中的错误。您应该在 github 上提交错误报告 你是对的,马里奥 - github.com/select2/select2/issues/2954。感谢您的帮助。 "select2:unselecting 在删除选择之前触发。可以防止此事件。"但是console.log($select.select2('data'))
在这个事件上返回一个空数组【参考方案2】:
这行得通:
$("#my-select").on("select2:unselecting", function(e)
);
【讨论】:
【参考方案3】:$("#my-select").on("select2:select select2:unselecting", function(e)
//do something here
);
【讨论】:
【参考方案4】:根据select2 event documentations,所有的unselect、unselecting、clear和clearing事件都会起作用!
但请考虑 usnselect 或 unselecting 事件应该由 单选 模式使用,并且 clear 或 多选模式应该使用em>clearing。因此,如果所有选定的项目都已清除或清除,则清除或清除将触发。
取消选择和取消选择之间的区别在于,取消选择会在删除选择之前触发,因此您可以阻止它。
希望对你有帮助。
【讨论】:
以上是关于选择 select2 的 allowClear 选项时如何捕获事件?的主要内容,如果未能解决你的问题,请参考以下文章