Установите фокус клавиатуры на

У меня есть следующий fragment кода:

<table id="ptObj_listbox1...

У меня есть страница, которая динамически создает элементы

(например, выше). Этот

отображает данные поверх главного экрана. Когда страница генерирует divs, я хотел бы установить фокус. Я не могу поместить функцию onLoad в тег body, поскольку я не знаю, когда будут сгенерированы div.

Тег

не может напрямую установить фокус. Поэтому я помещаю пустой тег с идентификатором, который я вызываю в следующей функции:

 function setTableFocus(count){ var flinkText = 'focusLink'+count; document.getElementById(flinkText).focus(); } 

Я не получаю никаких ошибок, и я знаю, что функция вызывается, когда страница отображается (через оповещения). Однако, когда я использую клавиши со стрелками или кнопку ввода, вся страница перемещается (даже не в div, представляющий данные).

Когда я нажимаю на один из элементов таблицы (с помощью мыши). После этого начинает работать событие keydown. Мне бы хотелось, чтобы это было сделано, чтобы представить данные пользователю и автоматически управляться клавиатурой.

Есть ли у кого-нибудь предложения, как я могу это сделать?

    вы можете сделать div focusable, если вы добавите атрибут tabindex .

    см .: http://snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex

    Значение tabindex может привести к некоторому интересному поведению.

    • Если задано значение «-1», элемент не может быть привязан к табуляции, но фокус может быть присвоен элементу программно (с использованием element.focus ()).
    • Если задано значение 0, элемент можно сфокусировать с помощью клавиатуры и попасть в stream табуляции документа.
    • Значения, превышающие 0, создают уровень приоритета, причем 1 является самым важным.

    UPDATE: добавлена ​​простая демонстрация на http://jsfiddle.net/roberkules/sXj9m/

    Функция, динамически генерирующая divs, будет иметь контекст, ansible для определения того, на какой div сосредоточиться, после последнего div выдает скрипт с scrollTo (), чтобы сфокусироваться на нужном div. Назначьте каждый div ID, чтобы вы могли выбрать его из набора.

     Response.Write "  " 

    Вы не можете сфокусировать div. Вы имеете в виду фокус на вход?

    Во всяком случае, вы можете включить короткий тег сценария, чтобы сфокусировать что-то прямо в HTML – просто поместите скрипт сразу после div – или даже внутри div.

    Вы контролируете функцию asp? Если да, то это было бы самым легким местом для установки фокуса. В противном случае вы можете прослушать событие DOMNodeInserted (примечание: поддержка браузера может отличаться) и установить фокус на div (или его дочерние DOMNodeInserted ) на основе соответствующих условий.

    Вы можете использовать getElementsByClassName

     
    TEXT

    вы имеете в виду, что хотите сфокусировать divs всякий раз, когда он сгенерирован? попробуйте провести эти исследования

    http://api.jquery.com/focus/

    а также

    http://api.jquery.com/live/

    и для нажатия клавиши.

    http://api.jquery.com/keypress/

    afaik divs и другие элементы могут иметь фокус какого-то типа, как в wikis, например ..

    http://en.wikipedia.org/wiki/JavaScript#Cross-site_vulnerabilities

    и он будет автоматически прокручиваться там. Я просто не знаю, как это сделать.

    как для динамически генерируемых divs и таблиц вы можете использовать функцию jQuery live ()

    Я решаю, что следующий: