Я не мог найти ответ, который мог бы сделать то, что я хотел. У меня была проблема, когда были некоторые элементы ссылок, которые я не хотел, чтобы пользователи вкладывали. Вот что я придумал:
(Обратите внимание, что в моем собственном коде я использовал a:not(.dropdown-item)
вместо a
в строке allElements
, чтобы пользователи не могли переходить на a.dropdown-item
.)
function(event){
//Note that this doesn't honour tab-indexes
event.preventDefault();
//Isolate the node that we're after
const currentNode = event.target;
//find all tab-able elements
const allElements = document.querySelectorAll('input, button, a, area, object, select, textarea, [contenteditable]');
//Find the current tab index.
const currentIndex = [...allElements].findIndex(el => currentNode.isEqualNode(el))
//focus the following element
allElements[currentIndex + 1].focus();
}