Select2 在鼠标输入结果时触发事件

Select2 fire event on mouseenter of results

我需要重置关闭父 DIV 的计时器,其中包含 mouseleave 上的 select2-container。

这不会触发:

$('.select2-dropdown').on('mouseenter', function(e){
   console.log('in');
   clearInterval( $(this).data('timer') );
});

我在 DOM 上尝试了所有可能的选择器,但它没有触发。

谢谢!

您似乎没有正确设置此处理程序。

下拉菜单只在Select2打开时生成,关闭后自动移除。所以你不能只设置一次处理程序就忘记它,除非你使用事件委托。

$('body').on('mouseenter', '.select2-results__option', function(e){
   console.log('in');
   clearInterval( $(this).data('timer') );
});

所以它实际上会捕获 body 上的事件,然后检查它是否来自结果中的选项。

另一种选择是保留您当前的处理程序,但在 select2:open(在 select 上)而不是 ready(在文档上)期间绑定它。 可能还需要在select2:close期间解除绑定。