jquery tabindex / focus & hotkeys - PullRequest
       27

jquery tabindex / focus & hotkeys

1 голос
/ 10 июля 2009

Кажется, что есть проблемы с 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 ]

4 голосов
/ 10 июля 2009

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

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

0 голосов
/ 10 июля 2009

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

    $("form#postForm"+postOptionSelected).show();
    $("form.postForm:not(#postForm"+postOptionSelected+")").hide();
...