Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Goldik

Javascript onfocus onblur

05.08.2014, 18:25. Показов 2136. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте,я новичок нужна помощ...
я пишу крестики нолики на js, установил onfocus и onblur на элемент div,после фокуса на него появляются 2 блока с картинкой X и O,при клике на одного из них div получает картику,но когда я ставлю onblur на этот div для скрытия двух блоков картинок,почему то перестайт действовать функция для смены картинки div-а...
заранее спасибо за помощь


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="style/style.css" type="text/css" rel="stylesheet">
<!-- <meta http-equiv="refresh" content="1"> -->
<title>X & O</title>
 
</head>
 
<body> <!-- onclick="assign(this)" -->
 
<ul>
<li>
<div tabindex="">
<img />
<p>
<button><img src="images/x.png"></button>
<button><img src="images/o.png"></button>
</p>
</div>
 
<div tabindex="">
<img />
<p>
<button><img src="images/x.png"></button>
<button><img src="images/o.png"></button>
</p>
</div>
 
<div tabindex="">
<img />
<p>
<button><img src="images/x.png"></button>
<button><img src="images/o.png"></button>
</p>
</div>
</li>
 
</ul>
 
<script type="text/javascript" src="script/script.js"></script>
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var field=document.getElementsByTagName("div");
for(var i=0;i<field.length;i++){
    
    field[i].onfocus=function(){
    var x_o = this.getElementsByTagName("button");
    for (var j = 0; j < x_o.length; j++) {
        x_o[j].style.display = "block"; 
        x_o[j].onclick=function(){
            var image = this.getElementsByTagName("img")[0].src;
            this.parentNode.parentNode.getElementsByTagName("img")[0].src = image;
            this.parentNode.style.display="none";
        }
    }   
    }
    field[i].onblur=function(){
    var x_o = this.getElementsByTagName("button");
    for (var j = 0; j < x_o.length; j++) {
            x_o[j].style.display = "none";
    }
    };
    
};
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.08.2014, 18:25
Ответы с готовыми решениями:

Валидация полей формы, события onfocus и onblur
Здравствуйте. Вопрос банален: валидация полей регистрационной формы. Написала простенькую форму в четыре поля. Когда пользователь...

Неверно работает OnBlur и, как следствие - OnFocus
Собственно проблема: Открыто окно мозиллы. Если не сворачивать его, а просто переключиться на какое то другое окно, (через alt+tab...

Не работает onfocus
Почему в данном случае не срабатывает onfocus? &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;body&gt; &lt;select name=&quot;months&quot;...

7
07.08.2014, 13:49
 Комментарий модератора 
Тема была перемещана с подфорума "Регулярные выражения", где была бессовестно потеряна. В связи с чем делаю ап темы.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.08.2014, 14:31
события onfocus и onblur поддерживаются только теми тегами, которые реально могут получить/потерять фокус
например, тег <input type="text"> может получить (и потерять) фокус

плайн-теги (в т.ч. тег <div>) с фокусом никак не связаны, события onfocus и onblur на них в принципе не поддерживаются
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
07.08.2014, 14:34
Goldik, попробуй события mouseenter/mouseleave
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.08.2014, 16:05
Попробуй дивам дать атрибут tabindex
1
 Аватар для PinkieRAR
4 / 4 / 0
Регистрация: 17.08.2016
Сообщений: 56
07.04.2020, 15:49
alexsamos33, как можно добавить диву атрибут tabindex с помощью js?

Я создал див и добавил атрибут, но фокусировка так и не работает....
JavaScript
1
2
3
4
let div = document.createElement('div');
div.tabindex = -1;
div.onclick = function() { this.focus(); };
body.appendChild(div);
Добавлено через 6 минут
а, ну, кажется разобрался.
Изначально у дива нет атрибута tabindex, а когда я пытаюсь присвоить ему -1, то создаётся свойство, а не атрибут
Если атрибут отсутствует, то его нужно создать:
JavaScript
1
div.setAttribute('tabindex', -1);
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.04.2020, 19:37
PinkieRAR,
JavaScript
1
div.setAttribute('tabindex', '0');
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
11.04.2020, 00:20
PinkieRAR, можно и через свойство, только буковку I в названии свойства, соответствующего искомому атрибуту, надо прописывать в верхнем регистре, вот так: tabIndex

Добавлено через 24 минуты
-----
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2020, 00:20
Помогаю со студенческими работами здесь

Onfocus и onblur для div
Всем привет. Конструкция такая: &lt;div id=&quot;mainbox&quot;&gt; &lt;input type=&quot;text&quot; onblur=&quot;hideResBox();&quot; /&gt; &lt;div...

Не работает onBlur
Всем добрый день! Возникла такая проблема с кодом. Не хочет выполнятся ( не выскакивают окна с ошибками). Сразу скажу что на JS пишу первый...

Валидация форм Onblur
Здравствуйте , есть код на проверку формы &lt;script&gt; function valid(form){ var name =document.getElementById('name').value; var...

Напишите функцию с использованием события onFocus
Здравствуйте . Помогите пожалуйста разобраться и до делать задание.:cry::help: При получении полем chekbox (флажок) фокуса в строке...

Как сделать таймер пока onfocus?
Всем привет! Хочу сделать таймер, который работает только если окно активно(onfocus), если окно не активно, то остановить таймер. После...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru