События OnFocus / OnBlur не зарегистрированы - PullRequest
1 голос
/ 03 мая 2011

Ребята, я чувствую себя очень глупо, спрашивая об этом, но замечательно, что я уже час бьюсь головой. Вот код:

<div id="img1" onfocus="alert('test');" onblur="alert('test');">
 <img id="image1" name="image1" src="image1.jpg"  alt="Pciture 1">&nbsp;
</div>

Оба события (Focus / Blur) должны вызывать функцию, но даже этот простой тест (alert) не работает. Оба эти тега находятся в разделе body, попытались изменить определение DOCTYPE - безрезультатно.

W3 выдает ошибку:

нет атрибута "ONFOCUS"

Моя главная цель - использовать события непосредственно в тегах img, но по какой-то причине это тоже не работает.

Ответы [ 8 ]

7 голосов
/ 03 мая 2011

по умолчанию div не является интерактивным элементом, поэтому он вообще не фокусируется, попробуйте добавить в div атрибут tabindex, например tabindex="1", тогда он будет фокусируемым

3 голосов
/ 03 мая 2011

<div> и <img> обычно не имеют события фокусировки или размытия, но вы можете попытаться установить для него tabindex в качестве обходного пути.Это немного странно.

http://www.quirksmode.org/dom/events/blurfocus.html

2 голосов
/ 03 мая 2011

Событие onfocus наступает, когда элемент получает фокус либо с помощью указательного устройства, либо с помощью вкладок навигации.Этот атрибут может использоваться со следующими элементами: A, AREA, LABEL, INPUT, SELECT, TEXTAREA и BUTTON.

Источник : w3c HTML4 spec

Ни div, ни img не могут получить или потерять фокус, это не интерактивные элементы.Вы можете включить их фокусировку, установив tabindex.

есть узлы, которые по умолчанию не фокусируются, такие как div, span, table и т. Д., Но которые могут получить фокус, если применяется tabindex

Источник : http://nemisj.com/focusable/

0 голосов
/ 05 мая 2011

Div Tag не имеет события onfocus и onblur. Пожалуйста, попробуйте навести курсор мыши, мышку и т. Д.

0 голосов
/ 04 мая 2011

Вы не должны использовать встроенный JS для ваших обработчиков событий. Вместо этого используйте ненавязчивый javascript .

0 голосов
/ 03 мая 2011

Может быть, события onmouseover и onmouseout - это то, что вы ищете

0 голосов
/ 03 мая 2011

Вы можете перестать биться головой, во-первых, это больно, во-вторых, вы не можете использовать onfocus или onblur для элементов div.

Проверьте ссылку: W3C

Чего ты пытаешься достичь?

0 голосов
/ 03 мая 2011

Валидатор W3C верен, тег div не имеет атрибутов onfocus или onblur.Смотрите здесь: http://www.w3schools.com/tags/tag_DIV.asp

...