#javascript #html #dom-events #onfocus
#javascript #HTML #dom-события #onfocus
Вопрос:
Я чувствую себя действительно глупо, спрашивая об этом, но, что примечательно, я бьюсь головой уже час. Вот код:
<div id="img1" onfocus="alert('test');" onblur="alert('test');">
<img id="image1" name="image1" src="image1.jpg" alt="Pciture 1">amp;nbsp;
</div>
Оба события ( Focus
/ Blur
) должны вызывать функцию, но даже этот простой тест ( alert
) не работает. Оба этих тега находятся в разделе body, пробовал изменить DOCTYPE
определение — никакого эффекта.
W3 выдает ошибку:
нет атрибута «ONFOCUS»
Моя главная цель — использовать события непосредственно в img
тегах, но по какой-то причине это тоже не работает.
Ответ №1:
по умолчанию div не является интерактивным элементом, поэтому он вообще не получает фокуса, попробуйте добавить к div tabindex
атрибут, такой tabindex="1"
как, тогда он будет фокусируемым
Комментарии:
1. Спасибо, все работает нормально, но я должен щелкнуть по элементу, чтобы заставить его работать, это не совсем то, что я хотел.
2. Затем вы можете искать
mouseover
иmouseout
, илиfocusin
иfocusout
в IE
Ответ №2:
<div>
и <img>
обычно не имеют события фокусировки или размытия, но вы можете попробовать установить для него tabindex в качестве обходного пути. Хотя это немного странно.
Ответ №3:
Событие onfocus возникает, когда элемент получает фокус либо с помощью указывающего устройства, либо с помощью навигации по вкладкам. Этот атрибут может использоваться со следующими элементами: A, AREA, LABEL, INPUT, SELECT, TEXTAREA и BUTTON.
Источник: спецификация w3c HTML4
Ни div
, ни an img
не могут получать или терять фокус, это не интерактивные элементы. Вы можете включить их фокусировку с помощью настройки tabindex
.
существуют узлы, которые не могут фокусироваться по умолчанию, такие как div, span, table и т.д., Но могут получать фокус, если применяется tabindex
Источник: http://nemisj.com/focusable
Ответ №4:
Средство проверки W3C работает правильно, тег div не имеет атрибутов onfocus или onblur в качестве атрибутов. Смотрите здесь: http://www.w3schools.com/tags/tag_DIV.asp
Комментарии:
1. Спасибо, кажется, я забыл о спецификациях
2. Человеку, который отклонил это, не могли бы вы, пожалуйста, сказать мне, почему? Насколько мне известно, мой комментарий верен и применим к этому вопросу.
Ответ №5:
Возможно, события onmouseover
и onmouseout
— это то, что вы ищете
Ответ №6:
Вам не следует использовать встроенный JS для ваших обработчиков событий. Вместо этого используйте ненавязчивый javascript.
Ответ №7:
В теге Div нет событий onfocus и onblur. Пожалуйста, попробуйте наведение курсора мыши и т.д..
Ответ №8:
Вы можете перестать биться головой, во-первых, это больно, во-вторых, вы не можете использовать onfocus или onblur для элементов div.
Проверьте ссылку da: W3C
Чего вы пытаетесь достичь?