我有一个带搜索框的select2下拉菜单。当前,在按Tab键并按ENTER键时,焦点位于搜索框上,这是select2中的默认行为,因为此代码:
container.on('open', function () {
self.$search.attr('tabindex', 0);
self.$search.focus();
window.setTimeout(function () {
self.$search.focus();
}, 0);
});
container.on('close', function () {
self.$search.attr('tabindex', -1);
self.$search.val('');
});
container.on('focus', function () {
if (container.isOpen()) {
self.$search.focus();
}
});
当前看起来像这样,并且在打开下拉列表后,焦点位于搜索框上:
http://oi67.tinypic.com/k2mn4k.jpg
但是,当我在下拉列表打开后按TAB键时,我要关注搜索结果列表中的第一个选项。我在页面上有用于侦听TAB键的代码,但是即使我将tabindex = 0放入选项标签中,它也不会侦听“ select2-results__option”。有可能实现这一目标吗?
$(document).on('keyup', '.secondary-overlay-trigger', e => {
e.stopPropagation();
if (e.keyCode === KEY_TAB) {
$('#root, #wrapper, .cel-Faq, .checkout-login-page').addClass('cel-container--has-focus');
}
});