Итак, у меня есть следующая функция. То, что он делает, - это прослушивание фокусного события для всех элементов. Если этот элемент находится либо в $mobileMenu
, либо $menuItems
, он в противном случае удаляет фокус:
var $body = $("body");
var $mobileMenu = $("#mobile-menu");
var $menuItems = $("#main-menu a");
$body.on("focus.spf", "*", function(e){
e.stopPropagation();
$this = $(this);
// Prevent items from recieving focus and switching view
if (!$this.is($mobileMenu) && !$this.is($menuItems)) {
$this.blur();
} else {
console.log(this);
}
})
Проблема заключается в том, что это не позволяет пользователю сосредоточиться на чем-либо, если нормально фокусируемый элемент, который теперь не подвергается фокусировке, предшествует любому из моих элементов, перечисленных в белом списке, поскольку он просто пытается переориентироваться на один и тот же элемент снова и снова еще раз.
Кто-нибудь знает, как я могу это сказать, вместо этого перейти к следующему настраиваемому элементу?