Skip to content

Commit 470c0c9

Browse files
committed
minor
1 parent 051b6b4 commit 470c0c9

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

2-ui/1-document/3-dom-console/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@
2828
<dd>И еще некоторые реже используемые вкладки, которые станут понятны по мере изучения DOM.</dd>
2929
</dl>
3030

31-
[warn header="DOM не полностью отображается в инструментах!"]
31+
[warn header="DOM в Elements не совсем соответствует реальному"]
3232
Отображение DOM во вкладке Elements не совсем соответствует реальному. В частности, там не отображаются пробельные узлы. Это сделано для удобства просмотра. На мы-то знаем, что они есть.
3333

34-
В Elements можно увидеть CSS-псевдоэлементы, такие как `::before`, `::after`. Это также сделано для удобства, в DOM их не существует.
34+
С другой стороны, в Elements можно увидеть CSS-псевдоэлементы, такие как `::before`, `::after`. Это также сделано для удобства, в DOM их не существует.
3535
[/warn]
3636

3737

2-ui/1-document/4-traversing-dom/article.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,16 @@ for (var key in elems) {
230230
<li>`parentElement` -- родитель-элемент.</li>
231231
</ul>
232232

233-
[smart header="Родитель-элемент? А что, бывают родители не-элементы?"]
234-
Почти всегда родитель и так элемент, ведь текстовые узлы не могут иметь потомков. Поэтому это свойство равно `parentNode`, кроме одного исключения.
233+
[smart header="Зачем `parentElement`? Неужели бывают родители не-элементы?"]
234+
Свойство `elem.parentNode` возвращает родитель элемента.
235235

236-
В корне DOM находится `document`, и он-то как раз не элемент. То есть, если идти по цепочке `parentElement` вверх, то мы, остановимся мы не на `document` как в случае с `parentNode`, а на `document.documentElement`.
236+
Оно всегда равно `parentElement`, кроме одного исключения:
237+
238+
```js
239+
//+ run
240+
alert( document.documentElement.parentNode ); // document
241+
alert( document.documentElement.parentElement ); // null
242+
```
237243

238244
Иногда это имеет значение, если хочется перебрать всех предков и вызвать какой-то метод, а на документе его нет.
239245
[/smart]

2-ui/2-events-and-interfaces/5-event-delegation/1-hide-message-delegate/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
**Используйте делегирование событий. Один обработчик для всего.**
88

99
В результате, должно работать вот так(кликните на крестик):
10-
[iframe src="solution" height=400]
10+
[iframe src="solution" height=420]
1111

2-ui/2-events-and-interfaces/8-dispatch-events/article.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,15 @@ var event = new Event(тип события[, флаги]);
5050

5151
На сгенерированном событии, как и на встроенном браузерном, обработчик может вызвать метод `event.preventDefault()`. Тогда `dispatchEvent` возвратит `false`.
5252

53-
Остановимся здесь подробнее. Обычно такой вызов предотвращает действие браузера. В случае, если событие придумано нами -- никакого действия браузера, конечно, нет, но код, который генерирует событие, может быть заинтересован узнать, что его "отменили" и не продолжать свои действия.
53+
Остановимся здесь подробнее. Обычно `preventDefault()` вызов предотвращает действие браузера. В случае, если событие придумано нами, имеет нестандартное имя -- никакого действия браузера, конечно, нет.
5454

55-
Иначе говоря, `event.preventDefault()` является возможностью для обработчика сообщить в сгенерировавший событие код, что некие действия продолжать не надо.
55+
Но код, который генерирует событие, может предусматривать какие-то ещё действия после `dispatchEvent`.
5656

57-
В примере ниже функция `hide()` генерирует событие `hide` на элементе `#rabbit`, уведомляя всех интересующихся, что кролик собирается спрятаться.
57+
Вызов `event.preventDefault()` является возможностью для обработчика событие сообщить в сгенерировавший событие код, что эти действия продолжать не надо.
5858

59-
И, если никакой обработчик не отменит действие по умолчанию, то кролик действительно исчезнет:
59+
В примере ниже есть функция `hide()`, которая при вызове генерирует событие `hide` на элементе `#rabbit`, уведомляя всех интересующихся, что кролик собирается спрятаться.
60+
61+
Любой обработчик может узнать об этом, подписавшись на событие через `rabbit.addEventListener('hide',...)` и, при желании, отменить действие по умолчанию через `event.preventDefault()`. Тогда кролик не исчезнет:
6062

6163
```html
6264
<!--+ run -->
@@ -70,15 +72,13 @@ var event = new Event(тип события[, флаги]);
7072

7173

7274
<script>
73-
// прячемся через 2 секунды
74-
setTimeout(hide, 2000);
75-
75+
7676
function hide() {
7777
var event = new Event("hide", {
7878
cancelable: true
7979
});
8080
if (!rabbit.dispatchEvent(event)) {
81-
alert( 'действие отменено' );
81+
alert( 'действие отменено обработчиком' );
8282
} else {
8383
rabbit.hidden = true;
8484
}
@@ -89,6 +89,10 @@ var event = new Event(тип события[, флаги]);
8989
event.preventDefault();
9090
}
9191
});
92+
93+
// прячемся через 2 секунды
94+
setTimeout(hide, 2000);
95+
9296
</script>
9397
```
9498

0 commit comments

Comments
 (0)