blob: f5357eb7ae1e3cc637c7c27d63c7dc43e886f4f4 (
plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
---
title: blur (event)
slug: Web/API/Element/blur_event
tags:
- DOM
- DOM Events
translation_of: Web/API/Element/blur_event
original_slug: Web/Events/blur
---
<p>Событие <code>blur</code> вызывается когда элемент теряет фокус. Главное отличие между этим событием и <a href="/en-US/docs/Mozilla_event_reference/focusout"><code>focusout</code></a> только в том что у последнего есть фаза всплытия.</p>
<h2 id="Основная_информация">Основная информация</h2>
<dl>
<dt style="float: left; text-align: right; width: 120px;">Спецификация</dt>
<dd style="margin: 0 0 0 120px;"><a class="external" href="http://www.w3.org/TR/DOM-Level-3-Events/#event-type-blur">DOM L3</a></dd>
<dt style="float: left; text-align: right; width: 120px;">Интерфейс</dt>
<dd style="margin: 0 0 0 120px;">{{domxref("FocusEvent")}}</dd>
<dt style="float: left; text-align: right; width: 120px;">Всплытие</dt>
<dd style="margin: 0 0 0 120px;">Нет</dd>
<dt style="float: left; text-align: right; width: 120px;">Отменяемый</dt>
<dd style="margin: 0 0 0 120px;">Нет</dd>
<dt style="float: left; text-align: right; width: 120px;">Цель</dt>
<dd style="margin: 0 0 0 120px;">Элемент</dd>
<dt style="float: left; text-align: right; width: 120px;">Действие по умолчанию</dt>
<dd style="margin: 0 0 0 120px;">Нет</dd>
</dl>
<p>{{NoteStart}}Значение {{domxref("Document.activeElement")}} меняется в зависимости от браузера во время выполнения этого события ({{bug(452307)}}): IE10 устанавливает его к элементу на который будет перемещён фокус, в то время как Firefox и Chrome обычно устанавливают его к <code>body</code> документа{{NoteEnd}}</p>
<h2 id="Свойства">Свойства</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Property</th>
<th scope="col">Type</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>target</code> {{readonlyInline}}</td>
<td>{{domxref("EventTarget")}}</td>
<td>Event target (DOM element)</td>
</tr>
<tr>
<td><code>type</code> {{readonlyInline}}</td>
<td>{{domxref("DOMString")}}</td>
<td>The type of event.</td>
</tr>
<tr>
<td><code>bubbles</code> {{readonlyInline}}</td>
<td>{{jsxref("Boolean")}}</td>
<td>Whether the event normally bubbles or not.</td>
</tr>
<tr>
<td><code>cancelable</code> {{readonlyInline}}</td>
<td>{{jsxref("Boolean")}}</td>
<td>Whether the event is cancellable or not.</td>
</tr>
<tr>
<td><code>relatedTarget</code> {{readonlyInline}}</td>
<td>{{domxref("EventTarget")}} (DOM element)</td>
<td>null</td>
</tr>
</tbody>
</table>
<h2 id="Делегирование_события">Делегирование события</h2>
<p>Есть два способа реализовать делегирование этого события: использовать событие <code>focusout</code> в браузерах которые поддерживают его (все браузеры, Firefox с 52+), или установить параметр "useCapture" метода <a href="/en-US/docs/DOM/element.addEventListener"><code>addEventListener</code></a> на <code>true</code>:</p>
<h3 id="HTML_Content">HTML Content</h3>
<pre class="brush:html;"><form id="form">
<input type="text" placeholder="text input">
<input type="password" placeholder="password">
</form></pre>
<h3 id="JavaScript_Content">JavaScript Content</h3>
<pre class="brush: js">var form = document.getElementById("form");
form.addEventListener("focus", function( event ) {
event.target.style.background = "pink";
}, true);
form.addEventListener("blur", function( event ) {
event.target.style.background = "";
}, true);</pre>
<p>{{EmbedLiveSample('Event_delegation')}}</p>
<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Basic support</td>
<td>5</td>
<td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
<td>6</td>
<td>12.1</td>
<td>5.1</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>4.0</td>
<td>53</td>
<td>{{CompatUnknown}}</td>
<td>10.0</td>
<td>12.1</td>
<td>5.1</td>
</tr>
</tbody>
</table>
</div>
<p>[1] В Gecko до 24 {{geckoRelease(24)}} интерфейс для этого события был {{domxref("Event")}}, не {{domxref("FocusEvent")}}. Смотреть ({{bug(855741)}}).</p>
<h2 id="Похожие_события">Похожие события</h2>
<ul>
<li>{{event("focus")}}</li>
<li>{{event("blur")}}</li>
<li>{{event("focusin")}}</li>
<li>{{event("focusout")}}</li>
</ul>
|