it-swarm.com.de

.chosen.change () - wie Sie herausfinden, ob es sich um eine Auswahl- oder eine Abwahlaktion handelt

Wie können wir herausfinden, ob ein Änderungsereignis, das für eine Komponente ausgelöst wurde, das Ergebnis einer Auswahl oder einer Abwahl war? Wie können wir nur den Wert des ausgewählten Werts oder nur den abgewählten Wert verwenden?

$("#airports-select-2").chosen().change(function(event) {
    console.log('select2 change', event, $(event.target).val());
});

Dieser Code gibt mir alle Werte, die bisher für eine Multiselect-Komponente ausgewählt wurden. Wie kann dies geändert werden, um nur den Wert der neu ausgewählten oder nicht ausgewählten Komponente anzugeben?

18
oneiros

Bei jedem Ereignisfeuer können Sie auslösen:

var  target = $(event.target),
     priorDataSet = target.data("chosen-values"),
     currentDataSet = target.val();

//Diff and compare the delta here.    

target.data("chosen-values", currentDataSet);

Vor der Aktualisierung der Daten für das DOM-Element können Sie das Delta zwischen den Wertemengen bestimmen. Wenn es im alten und nicht im neuen ist, wird es entfernt. Wenn es im Neuen und nicht im Alten ist, wurde es hinzugefügt.

Wenn Sie ein Beispiel benötigen, wie Sie das Delta zwischen zwei Arrays bestimmen können, lassen Sie es mich wissen, und ich werde auch ein Beispiel dafür erstellen.

3
VulgarBinary

Ausgewählte Dokumentation

Ausgewählt löst das Standard-DOM-Ereignis aus, wann immer eine Auswahl getroffen wird (Es sendet auch einen ausgewählt oder nicht ausgewählt Parameter, der Ihnen mitteilt, welche -Option geändert wurde.

  $('select').on('change', function(event, params) {
    // can now use params.selected and params.deselected
  });
37
Evgeny

Die gewählte Dokumentation beschreibt die ausgelösten Ereignisse

Um das Ereignis bei "Suchauswahl-Schließen" abzufangen, können Sie Folgendes versuchen:

 $('#selectID').on('change', function(change, deselected) { //selected OR deselected
    //do something
    console.log('Value Deselected');
  });
0
Tanmay D