Jquery自动完成:如果没有选择任何项目,则使tab键选择第一个项目
Jquery-autocomplete: makes the tab key select the first item if no item is selected
这个问题的目标是:通过使用jquery自动完成,使选项卡键能够在没有选择项目的情况下选择第一个项目
我实现的代码(1)有效,但我有一些疑问,我想澄清它们,或者,如果可能的话,改进/更改代码(1,以实现我的目标)。
我的疑虑是:
我触发ENTER太早了:事件调度是异步的(不同的侦听器是同步调用的,但它与触发器是异步的),所以我可能会在侦听器处理DONE之前触发它)
因此,我在这里仍然为两个事件使用相同的对象,因此我可能会有令人讨厌的副作用(例如,如果我在第一次调度期间阻止默认,那么第二次调度也会阻止,因为它是相同的对象)。
有什么建议/意见吗?
p.S.:
- 以下是jsfiddle链接:http://jsfiddle.net/uymYJ/31/.
- 这个问题与这个问题有关如何避免在这种情况下修改事件对象
(1)
$("#box").keydown(function(event){
var newEvent = $.Event('keydown', {
keyCode: event.keyCode
});
if (newEvent.keyCode !== $.ui.keyCode.TAB) {
return;
}
newEvent.keyCode = $.ui.keyCode.DOWN;
$(this).trigger(newEvent);
newEvent.keyCode = $.ui.keyCode.ENTER;
$(this).trigger(newEvent);
});
我想你需要这样的东西:
$("#box").keydown(function(event){
var newEvent = $.Event('keydown', {
keyCode: event.keyCode
});
if (newEvent.keyCode !== $.ui.keyCode.TAB) {
return;
}
if (newEvent.keyCode == $.ui.keyCode.TAB) {
// custom logic for tab
newEvent.keyCode = $.ui.keyCode.DOWN;
$(this).trigger(newEvent);
return false;
}
// ...
});
相关文章:
- 当项目投入使用时,Javascript是未定义的
- 如何在KendoDropDownList中使项目不可点击(项目将可见)
- Jquery自动完成:如果没有选择任何项目,则使tab键选择第一个项目
- 使可拖动的项目在掉落到可丢弃的contianer上时逐渐消失
- 如果选择了其他选择项目,则隐藏选择项目
- 如果项目不匹配,则显示变量
- 正则表达式使链接可点击(仅在“href”而不是“img src”中)
- 正则表达式匹配 JQM 路由器插件中的“项目”但不匹配“项目”
- 如果未输入任何内容,则使 JavaScript 按钮不执行任何操作
- 如果无法解析变量,则使 Jade (Pug) 失败
- 基本 Jquery - 如果 TD 中存在文本,则使 DIV 可见
- 使用jquery draggable UI使项目可拖动
- 检查一个数字是否可以被另一个数字整除 如果不能,则使其在 Javascript 中可整除
- Javascript - 如果选择了某个选项,则使元素消失
- 如果克隆的选择具有特定值,则使输入字段可见
- 如果选项卡类具有活动类,则使选项卡处于活动状态
- 如果段落元素为空,则使它们的CSS不同
- 无论如何,如果绝对位置元素位于屏幕下方,则使正文滚动条出现
- 如果文本框值匹配,则使该特定标签文本为“是”,否则为“否”
- 如果为添加新标签,则使html有效