所以我有以下功能。它所做的是监听所有元素上的焦点事件。如果该元素是在$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);
}
})
我的问题是这样可以防止用户在从聚焦在任何东西如果正常聚焦元素,现在是不可聚焦的在我的任何白色上市元素之前,因为它只是试图一次又一次地重新聚焦在同一元素上。
有谁知道我可以告诉它,而不是跳到下一个可重点元素?
也许这是''stopPropogation()''语句的位置?我对你在代码之后所说的话感到有点困惑。 – itdoesntwork
@itdoesntwork'stopPropagation()'很好,因为我们不想冒泡并浪费资源。基本上,内部标签索引在blur()方面得到了重置,因此每次选中它时,都会尝试将焦点放在第一个变得模糊的tabbable元素上,下次您选择它时会尝试再次选择它。 –
e.preventDefault()可以提供帮助吗? – Eric