web-dev-qa-db-ja.com

Select2ドロップダウン変更イベントが機能しない

Select2ドロップダウンを使用しており、ドロップダウンの選択に基づいていくつかの機能を実行する必要があります。

次のコードを試してみましたが、うまくいきませんでした。

$eventSelect.on("select2:select", function (e) { log("select2:select", e); });

$eventSelect.on("change", function (e) { log("change"); });

誰が私にこれをどのように機能させることができるか教えてもらえますか?

6
Arun Raj R

Select2バージョン.3.2を使用していますが、次のコードが機能しています

$("#id").on("change", function () { debugger; });
7
Arun Raj R

Webページが完全に読み込まれたことがわかったら、イベントを宣言してみることができます。私の場合、これが問題でした。

$(document).ready(function(){
    $('#yourselect').on("select2:select", function(e) { 
        console.log($(this).val());
    });
});
3
Jeison Flórez

このコードを試してください

$eventSelect.select2().on("change", function(e) {
          // mostly used event, fired to the original element when the value changes
          log("change val=" + e.val);
        })
1
Rahul

Select2のドキュメントからコードを取得したことがわかります。

https://select2.github.io/examples.html#programmatic-control

彼らがそのコードの下でlog()と呼ばれる関数を定義していることに気づきましたか.

これは機能コードですが、それも含めましたか?

function log (name, evt) {
  if (!evt) {
      var args = "{}";
  } else {
      var args = JSON.stringify(evt.params, function (key, value) {
      if (value && value.nodeName) return "[DOM node]";
      if (value instanceof $.Event) return "[$.Event]";
      return value;
      });
  }
  var $e = $("<li>" + name + " -> " + args + "</li>");
  $eventLog.append($e);
  $e.animate({ opacity: 1 }, 10000, 'linear', function () {
      $e.animate({ opacity: 0 }, 2000, 'linear', function () {
          $e.remove();
      });
    });
}

または、console.log()を使用してコンソールに出力することもできます。

0
dading84