我们如何确定组件上触发的更改事件是选择还是取消选择的结果?我们如何才能仅获取选定值或仅取消选定值的值?
$("#airports-select-2").chosen().change(function(event) {
console.log('select2 change', event, $(event.target).val());
});
此代码为我提供了迄今为止在多选组件上选择的所有值?如何将其更改为仅给我新选择或取消选择的组件的值?
我们如何确定组件上触发的更改事件是选择还是取消选择的结果?我们如何才能仅获取选定值或仅取消选定值的值?
$("#airports-select-2").chosen().change(function(event) {
console.log('select2 change', event, $(event.target).val());
});
此代码为我提供了迄今为止在多选组件上选择的所有值?如何将其更改为仅给我新选择或取消选择的组件的值?
从选择的文档:
每当进行选择时,Chosen 都会触发标准 DOM 事件(它还会发送一个selected或deselected参数,告诉您哪个选项已更改)。
$('select').on('change', function(event, params) {
// can now use params.selected and params.deselected
});
在每个事件触发时,您都可以触发:
var target = $(event.target),
priorDataSet = target.data("chosen-values"),
currentDataSet = target.val();
//Diff and compare the delta here.
target.data("chosen-values", currentDataSet);
在更新 DOM 元素的数据之前,您可以通过差异来确定值集之间的差异。如果它是在旧的而不是在新的,它就会被删除。如果它是新的而不是旧的,那么它已被添加。
如果您需要一个如何确定两个数组之间的增量的示例,请告诉我,我也会为此提供一个示例。
所选文档描述了触发事件
要在“search-choice-close”上捕捉事件,您可以尝试以下操作:
$('#selectID').on('change', function(change, deselected) { //selected OR deselected
//do something
console.log('Value Deselected');
});