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
期间解除绑定。
我需要重置关闭父 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
期间解除绑定。