jquery tabindex/focus & hotkeys

Кажется, в некоторых браузерах есть проблемы с tabindex, поэтому я хочу обойти эти проблемы, используя javascript/jquery. В частности, FF3.5 (Mac) вообще не принимает tabindex и не фокусируется на ссылках. У меня есть jquery 1.3.2 и js-hotkeys 0.7.9 на моем сайте.

У меня есть 4 формы на 1 странице, между которыми я могу переключаться, используя ссылку. Теперь, когда страница загружается, я выбираю одну из ссылок, используя ее идентификатор. Затем я хочу иметь возможность вкладки между каждой ссылки для отображения каждой формы.

Разобранный код выглядит так:

HTML

<nav id="postNav">
    <ul>    
        <li class="Nav1"><a href="#">1</a></li>
        <li class="Nav2"><a href="#">2</a></li>
        <li class="Nav3"><a href="#">3</a></li>
        <li class="Nav4"><a href="#">4</a></li>
    </ul>
</nav>

<form class="postForm" id="post1">
</form>

<form class="postForm" id="post2">
</form>

<form class="postForm" id="post3">
</form>

<form class="postForm" id="post4">
</form>

Jquery

$(document).ready(function(){               

    $("#postNav ul li a").click(function(event){
        var postOptionSelected = $(this).parent("li").attr("class").substr(3);
        $("form#post"+postOptionSelected).show();
            $("form.postForm:not(#post"+postOptionSelected+")").hide();
            event.preventDefault();
    });
});

2 ответа

Это не проблема Firefox. Это системная настройка для Mac OS. В "Системных настройках", "Клавиатура и мышь" и "Сочетания клавиш" есть параметр "Полный доступ к клавиатуре", который позволяет пользователям настраивать, хотят ли они, чтобы Tab активировал изменение фокуса клавиатуры для текстовых полей и списков или только для всех элементов управления. Он установлен в текстовые поля и списки только по умолчанию.

Safari в Mac OS имеет настройки в Safari, "Установки", "Дополнительно", нажмите "Tab", чтобы выделить каждый элемент на веб-странице, чтобы отменить это поведение.

Я думаю, что вы забыли "Форма" после "пост":

    $("form#postForm"+postOptionSelected).show();
    $("form.postForm:not(#postForm"+postOptionSelected+")").hide();
Другие вопросы по тегам