Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / javascript: в onblur выяснить на что переходит фокус / 24 сообщений из 24, страница 1 из 1
03.10.2013, 18:27
    #38416009
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Под конец дня не соображу как реализовать:

есть input и "всплывающий" div (div имеет класс 'popup')
нужно чтоб div прятался если input теряет фокус при нажатии мышкой не на div
...
Рейтинг: 0 / 0
03.10.2013, 18:34
    #38416016
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
...
Рейтинг: 0 / 0
03.10.2013, 18:58
    #38416036
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
для старых IE вместо relatedTarget можно юзать fromElement или toElement
http://javascript.ru/tutorial/events/properties#kogda-triggerov-bolshe-odnogo:-relatedtarget
...
Рейтинг: 0 / 0
03.10.2013, 20:05
    #38416089
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
к сожалению пробую - везде relatedTarget показывает undefined (
...
Рейтинг: 0 / 0
03.10.2013, 20:07
    #38416091
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Код: javascript
1.
  $('myInput').on('blur', function(e){ console.log(e.originalEvent.relatedTarget); });
...
Рейтинг: 0 / 0
03.10.2013, 20:39
    #38416123
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
оказывается, relatedTarget есть, когда фокус передается другому контролу, а не просто теряется
...
Рейтинг: 0 / 0
03.10.2013, 20:42
    #38416124
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spесть input и "всплывающий" div (div имеет класс 'popup')
нужно чтоб div прятался если input теряет фокус при нажатии мышкой не на divвешай онклик на документ и на див.
в онклике документа убивай попап.
в онклике дива останавливай всплывание евента.
...
Рейтинг: 0 / 0
03.10.2013, 21:41
    #38416157
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Яростный Меч,

да так и сделал, но так как это компонент их их может быть на странице не один - не есть хорошо - нужно аккуратно вычищать после...
...
Рейтинг: 0 / 0
03.10.2013, 21:46
    #38416161
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spно так как это компонент их их может быть на странице не один - не есть хорошо - нужно аккуратно вычищать после...так это понятно - при закрытии поп-апа делать document.removeEventListener соответствующей поп-апу функции..
по моему, тут трудностей не возникнет.
...
Рейтинг: 0 / 0
06.10.2013, 18:02
    #38418157
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
с кликом справился - но теперь вопрос в том как прятать "всплывающий" div по onblur?
вставляю в документ еще один инпут, делаю таб - e.originalEvent.relatedTarget - нету!(

вот разметрка

Код: html
1.
2.
3.
4.
<div id="_div">
  <input type="text" id="myInput" /><input type="text" />
  <div class="popUpDiv"></div>
</div>
...
Рейтинг: 0 / 0
07.10.2013, 13:25
    #38418822
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
может тут как-то спасет событие смены активного элемента, но в MDN черт ногу сломит найти события для DOM-элементов - искал полчаса так и не нашел собитыя даже для HTMLInputElement - где они их там попрятали?

Есть ли у документа событие смены активного элемента?
...
Рейтинг: 0 / 0
07.10.2013, 13:31
    #38418834
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
делал уже регистрацию события с захватом события

Код: javascript
1.
myInput.addEventListener('focusout', function(e) { ........}, true);



один хрен - target всегда равен myInput
...
Рейтинг: 0 / 0
07.10.2013, 13:31
    #38418836
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
myInput.addEventListener('blur', function(e) { ........}, true);

и так тоже не работает...
...
Рейтинг: 0 / 0
07.10.2013, 14:11
    #38418899
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spЕсть ли у документа событие смены активного элемента?
Я про такое не слышал...
...
Рейтинг: 0 / 0
07.10.2013, 14:22
    #38418913
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spmyInput.addEventListener('blur', function(e) { ........}, true);

и так тоже не работает...
Бивас, тест! (с)

Код: html
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.
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
window.onload=function (){
	var o=document.getElementsByTagName('input');
	for (var i=0; i<o.length; i++) {
		o[i].addEventListener('blur', 
			(function (N) {
				return function (){alert(N);};
			})(i)
		, true);
	};
};
</script>
</head>
<body>
<body>
<input />
<input />
<input />
</body>
</body>
</html>


Таки работает!
...
Рейтинг: 0 / 0
07.10.2013, 17:14
    #38419222
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
krvsa,

вопрос был не о том срабатывает ли onblur или нет - конечно же срабатывает - сомнений быть не может как и то что мы есть :)) !!!
но вот event.target (relatedTarget, toElement - выберите по вкусу ) - не выдает информации на какой элемент переходит фокус!!!
...
Рейтинг: 0 / 0
07.10.2013, 17:25
    #38419252
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spevent.target (relatedTarget, toElement - выберите по вкусу ) - не выдает информации на какой элемент переходит фокус!!!
Так самого перехода еще небыло...
Сам переход будет отловлен в событии focus у элемента.
...
Рейтинг: 0 / 0
07.10.2013, 17:45
    #38419285
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spвставляю в документ еще один инпут, делаю таб - e.originalEvent.relatedTarget - нету!(странно.. настолько странно, что я не поленился сделать пример , в котором по нажатию таб на консоль вывелся правильный relatedTarget
...
Рейтинг: 0 / 0
07.10.2013, 17:57
    #38419301
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Яростный Мечя не поленился сделать пример , в котором по нажатию таб на консоль вывелся правильный relatedTarget
У меня в Опере - undefined...
...
Рейтинг: 0 / 0
07.10.2013, 18:08
    #38419317
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
spвставляю в документ еще один инпут, делаю таб - e.originalEvent.relatedTarget - нету!(

вот разметрка

Код: html
1.
2.
3.
4.
<div id="_div">
  <input type="text" id="myInput" /><input type="text" />
  <div class="popUpDiv"></div>
</div>

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

если relatedTarget ненадежен, всегда есть вариант от Кэпа - по онблюру любого из этих инпутов ставить таймер на скрытие дива, по онфокусу убивать этот таймер
...
Рейтинг: 0 / 0
07.10.2013, 18:43
    #38419346
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Яростный Меч,

вот это идея! спасибо!
...
Рейтинг: 0 / 0
07.10.2013, 18:47
    #38419352
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Яростный Мечspвставляю в документ еще один инпут, делаю таб - e.originalEvent.relatedTarget - нету!(странно.. настолько странно, что я не поленился сделать пример , в котором по нажатию таб на консоль вывелся правильный relatedTarget

у меня в ФФ - null
...
Рейтинг: 0 / 0
07.10.2013, 19:13
    #38419372
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
Яростный Меч,

а blur оказывается совсем ненадежный товарищ - его во всех землях интернета ругают :)
...
Рейтинг: 0 / 0
07.10.2013, 19:24
    #38419385
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript: в onblur выяснить на что переходит фокус
sp,

но он хотя бы стабильно вызывается по факту? в варианте с таймером этого будет достаточно
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / javascript: в onblur выяснить на что переходит фокус / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]