20

コンポーネントでトリガーされた変更イベントが選択の結果であるか選択解除の結果であるかをどのように判断できますか?選択した値のみ、または選択解除した値のみの値を取得するにはどうすればよいですか?

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

このコードは、複数選択コンポーネントでこれまでに選択されたすべての値を提供しますか?新しく選択または選択解除されたコンポーネントの値のみを取得するようにこれを変更するにはどうすればよいですか?

4

3 に答える 3

40

選択したドキュメントから:

Chosenは、選択が行われるたびに標準のDOMイベントをトリガーします(選択された、または選択解除されたパラメーターを送信して、変更されたオプションを通知します)。

  $('select').on('change', function(event, params) {
    // can now use params.selected and params.deselected
  });
于 2013-08-23T23:12:37.783 に答える
3

すべてのイベントファイアでトリガーできます:

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つのアレイ間のデルタを決定する方法の例が必要な場合は、私に知らせてください。その例も作成します。

于 2012-07-26T21:12:50.903 に答える
0

選択したドキュメントには、トリガーされたイベントが記載されています

「search-choice-close」でイベントをキャッチするには、次のことを試してください。

 $('#selectID').on('change', function(change, deselected) { //selected OR deselected
    //do something
    console.log('Value Deselected');
  });
于 2018-04-05T18:46:24.527 に答える