.chosen.change() - как определить, было ли это действие select или deelect
Как мы можем выяснить, произошло ли событие изменения, произошедшее на компоненте, в результате выбора или отмены?
Как мы можем получить значение только выбранного значения или только выделенного значения?
$("#airports-select-2").chosen().change(function(event) {
console.log('select2 change', event, $(event.target).val());
});
Этот код дает мне все значения, которые были выбраны до сих пор в компоненте мультиселектора? Как это можно изменить, чтобы дать мне значение только что выбранного или отмененного компонента?
Ответы
Ответ 1
В каждом пожаре событий можно вызвать:
var target = $(event.target),
priorDataSet = target.data("chosen-values"),
currentDataSet = target.val();
//Diff and compare the delta here.
target.data("chosen-values", currentDataSet);
До обновления данных для элемента DOM вы можете определить, что такое дельта между наборами значений. Если он в старом, а не в новом, он удален. Если он в новом, а не в старом, то он был добавлен.
Если вам нужен пример того, как определить дельта между двумя массивами, дайте мне знать, и я также подниму пример для этого.
Ответ 2
Из списка :
Выбранный триггер запускает стандартное событие DOM всякий раз, когда делается выбор (он также отправляет параметр выбранный или отмененный, который сообщает вам, какой опция была изменена).
$('select').on('change', function(event, params) {
// can now use params.selected and params.deselected
});