gpt4 book ai didi

jquery - event.originalEvent 在具有 jQuery 自动完成功能的焦点事件中未定义

转载 作者:行者123 更新时间:2023-12-01 00:25:26 24 4
gpt4 key购买 nike

我需要使用自定义操作覆盖自动完成焦点事件,并根据用户是否使用键盘而不是鼠标从列表中进行选择来执行某些操作。为此,我检查事件对象中的originalEvent.type,该对象应该包含执行的操作类型(keydown、keyup、mouseenter 等)。

但是,originalEvent对象似乎未定义,我不明白为什么。它在自动完成代码中的实际焦点事件中工作得很好,但当我在自动完成对象内部覆盖该事件时则不然。

请参阅下面我的代码。如果有任何帮助,我将不胜感激,因为这让我抓狂。

$( "#tags" ).autocomplete({
source: availableTags,
focus: function(event, ui) {
//Check whether focus was triggered by a mouse or keyboard event
if ( /^key/.test(event.originalEvent.type) ) {
//Do something here
}

return false;
}
});

最佳答案

我实际上能够到达originalEvent,但我认为即使您可以检索它也对您没有帮助;查看以下示例中的控制台:http://jsfiddle.net/andrewwhitaker/DkumP/1/

您会注意到 originalEventtypemenufocus,我认为这不是您所期望的。

完成您想要做的事情的一种可能方法是检查 event.which,并查看它是向上箭头还是向下箭头(假设这些是您可以在自动完成小部件):

$("input").autocomplete({
source: /*...*/,
focus: function(event, ui) {
/* If the key that triggered this event is up or down arrow: */
if (event.which === 38 || event.which === 40) {
console.log('key');
}
else {
console.log('mouse');
}
}
});

这是一个示例:http://jsfiddle.net/andrewwhitaker/DkumP/2/

关于jquery - event.originalEvent 在具有 jQuery 自动完成功能的焦点事件中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5207911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com