2016-05-06 7 views
-1

Мое приложение отлично работает в Chrome и IE. Но в Firefox, divs продолжают получать фокус.Установите все divs, чтобы не разрешать фокус

Я могу пойти к каждому и установить его, чтобы он имел tabindex="-1", но это много div. Это делает мой код грязным, и в конце концов я собираюсь забыть его и испортить порядок вкладок.

Есть ли способ заставить Firefox не сосредоточиться на divs (например, Chrome и IE11)?

ПРИМЕЧАНИЕ. Кажется, что tabindex нельзя установить с помощью CSS.

+0

Любая причина не устанавливать атрибут через jquery? – Wobbles

+0

По умолчанию 'div' не является элементом _active_, поэтому он не получает фокус. Если это произойдет для вас в FF, и вам нужно добавить 'tabindex = '- 1", чтобы предотвратить это, тогда проблема js, скорее всего, где-то в другом месте. –

ответ

2

Jquery должен быть в состоянии справиться с этим легко:

$("div").attr('tabindex', -1); 

$() возвращает коллекцию соответствующих элементов, в данном случае все DIV-х, таким образом, attr применяется к каждому из элементов в коллекции.

Но div, как правило, не может быть сфокусирован для начала, поэтому на вашем сайте может быть сценарий, который делает именно то, что моя делает, но непреднамеренно. Попробуйте удалить ВСЕ атрибуты tabindex из всех элементов, которые не являются элементами формы. Кроме того, попробуйте выполнить аналогичный сценарий jquery, чтобы удалить их;

$("div").removeAttr('tabindex'); 
+0

Добавление 'tabindex =" - 1 "' позволяет div быть настраиваемым, он просто удаляет его из порядка табуляции. Удалите атрибуты «tabindex» целиком, и элементы больше не смогут получить фокус. – zzzzBov

+1

Очевидно, что если ОП задает вопрос, есть что-то, что он не контролирует, это нарушает норму. – Wobbles

+0

Я не согласен с этим, поэтому я предлагаю вам * удалить * атрибут, а не устанавливать его. – zzzzBov