javascript – Jquery-autocomplete:如果没有选择任何项目,则使tab键选择第一个项目

前端之家收集整理的这篇文章主要介绍了javascript – Jquery-autocomplete:如果没有选择任何项目,则使tab键选择第一个项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
此问题的目标是:通过使用 jquery-autocomplete,如果未选择任何项目,则使Tab键能够选择第一个项目.

我实现的代码(1)有效但我有一些疑问,我想澄清它们,或者,如果可能的话,改进/更改代码(1)以实现我的目标.

我的怀疑是:

我太早触发ENTER:事件调度是异步的(不同的侦听器是同步调用的,但它是触发器的异步),所以我可以在侦听器处理DONE之前触发它.
因此,我仍然在这里为这两个事件使用相同的对象,所以我可能有令人讨厌的副作用(如果我在第一次调度期间阻止默认,它将被阻止第二个,因为它是相同的对象) .

有什么建议/评论吗?谢谢.

P.S:
1)这是jsfiddle链接http://jsfiddle.net/uymYJ/31/.
2)这个问题与这个问题有关.

(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;
    }

    // ...
});
原文链接:https://www.f2er.com/jquery/157788.html

猜你在找的jQuery相关文章