为什么 jQuery 的 .on 的这个授权版本不能正常工作?

Why won't this delegated version of jQuery's .on work right?

当我运行这段代码时,我没有得到简单的alert。我将它委托给 body 因为该元素在页面加载时不存在于 DOM 中,它是在通过 https://github.com/argerim/select2-rails.

单击下拉列表后动态生成的
$(document).ready(function(){
  $('body').on('click', ".select2-highlighted", function() {
    alert("derp");
  });
});

一如既往,我感谢任何帮助!甚至告诉我我很烂并重新阅读文档并进行更多故障排除!但是请不要在没有给我一些建议的情况下投反对票:/

编辑

抱歉大家,我不知道我使用的 select2 库有 events 可以绑定。我几个月前刚开始工作,继承了一个很大的代码库,其中一部分是 select2,所以我今天开始研究文档。

再次感谢 PointyA. WolffKresimir Pendiccharlietfl 让我开始了修复之路!

这在过去对我有用(对于动态添加的表单),我将 select2 组件附加到

$( elem ).on( 'select2-open', function(){ // ... });

所以我想如果你使用的是版本 3.x 而不是新的 v4,你可以类似地做:

$( elem ).on( 'select2-highlight', function(){ //.. });

这是记录该事件的页面:http://select2.github.io/select2/