Select2下拉更改事件无效

我正在使用Select2下拉菜单,我需要根据下拉选项执行一些function。

我尝试了以下代码,但它对我没用。

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

任何人都可以告诉我如何才能使这项工作?

我使用的是select2版本3.3.2 ,以下代码对我有用

 $("#id").on("change", function () { debugger; }); 

在您知道网页已完全加载后,您可以尝试声明事件,在我的情况下,这是问题所在:

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

试试这个代码

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

我可以看到你从select2文档中获取了你的代码:

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

您是否注意到他们在下面定义了一个函数,该代码使用了名为log()的函数。

这是function代码,你也包含了吗?

 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 = $("
  • " + name + " -> " + args + "
  • "); $eventLog.append($e); $e.animate({ opacity: 1 }, 10000, 'linear', function () { $e.animate({ opacity: 0 }, 2000, 'linear', function () { $e.remove(); }); }); }

    或者,您可以使用console.log()输出到控制台。