diff --git a/1-js/2-first-steps/9-comparison/article.md b/1-js/2-first-steps/9-comparison/article.md
index 88f4504b..92570cf8 100644
--- a/1-js/2-first-steps/9-comparison/article.md
+++ b/1-js/2-first-steps/9-comparison/article.md
@@ -128,15 +128,16 @@ alert( +"2" > +"14" ); // false, теперь правильно
## Сравнение разных типов
-При сравнении значения преобразуются к числам. Исключение: когда оба значения -- строки, тогда не преобразуются.
+При сравнении значений разных типов, используется числовое преобразование. Оно применяется к обоим значениям.
Например:
```js
//+ run
-alert( '2' > 1 ); // true
-alert( '01' == 1 ); //true
-alert( false == 0 ); // true, false становится 0, а true 1.
+alert( '2' > 1 ); // true, сравнивается как 2 > 1
+alert( '01' == 1 ); // true, сравнивается как 1 == 1
+alert( false == 0 ); // true, false становится числом 0
+alert( true == 1); // true, так как true становится числом 1.
```
Тема преобразований типов будет продолжена далее, в главе [](/types-conversion).
@@ -177,12 +178,14 @@ alert(0 === false); // false, т.к. типы различны
Проблемы со специальными значениями возможны, когда к переменной применяется операция сравнения `> < <= >=`, а у неё может быть как численное значение, так и `null/undefined`.
-**Интуитивно кажется, что `null/undefined` эквивалентны нулю, но это не так! Они ведут себя по-другому.**
+**Интуитивно кажется, что `null/undefined` эквивалентны нулю, но это не так.**
+
+Они ведут себя по-другому.
-- **Значения `null` и `undefined` равны `==` друг другу и не равны чему бы то ни было ещё.**
+
- Значения `null` и `undefined` равны `==` друг другу и не равны чему бы то ни было ещё.
Это жёсткое правило буквально прописано в спецификации языка.
-- **При преобразовании в число `null` становится `0`, а `undefined` становится `NaN`.**
+- При преобразовании в число `null` становится `0`, а `undefined` становится `NaN`.
Посмотрим забавные следствия.
@@ -240,4 +243,6 @@ alert(undefined == 0); // false (3)
Строки сравниваются побуквенно.
Значения разных типов приводятся к числу при сравнении, за исключением строгого равенства `===` (`!==`).
Значения `null` и `undefined` равны `==` друг другу и не равны ничему другому. В других сравнениях (с участием `>`,`<`) их лучше не использовать, так как они ведут себя не как `0`.
-
\ No newline at end of file
+
+
+Мы ещё вернёмся к теме сравнения позже, когда лучше изучим различные типы данных в JavaScript.
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/solution.md b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.md
similarity index 100%
rename from 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/solution.md
rename to 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.md
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/solution.view/index.html b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.view/index.html
similarity index 92%
rename from 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/solution.view/index.html
rename to 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.view/index.html
index cf4e585d..3604a891 100644
--- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/solution.view/index.html
+++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/solution.view/index.html
@@ -8,7 +8,7 @@
}
.tooltip {
- position:absolute;
+ position: fixed;
z-index:100; /* подсказка должна перекрывать другие элементы */
padding: 10px 20px;
@@ -66,8 +66,7 @@
var showingTooltip;
document.onmouseover = function(e) {
- e = e || event;
- var target = e.target || e.srcElement;
+ var target = e.target;
// ВАЖНО: mouseover может сработать сразу на потомке
// минуя родителя (при быстром движении мышью)
@@ -105,16 +104,14 @@ function showTooltip(text, elem) {
tooltipElem.innerHTML = text;
document.body.appendChild(tooltipElem);
- var coords = getCoords(elem);
+ var coords = elem.getBoundingClientRect();
- // не вылезаем за пределы экрана
- var scroll = getPageScroll();
-
- var left = coords.left + (elem.offsetWidth - tooltipElem.offsetWidth)/2^0;
- if (left < scroll.left) left = scroll.left; // не вылезать за левую границу экрана
+ var left = coords.left + (elem.offsetWidth - tooltipElem.offsetWidth)/2;
+ if (left < 0) left = 0; // не вылезать за левую границу экрана
+ // не вылезать за верхнюю границу окна
var top = coords.top - tooltipElem.offsetHeight - 5;
- if (top < scroll.top) {
+ if (top < 0) {
top = coords.top + elem.offsetHeight + 5;
}
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/source.view/index.html b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/source.view/index.html
similarity index 56%
rename from 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/source.view/index.html
rename to 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/source.view/index.html
index b573bc2a..c22a0aa2 100644
--- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-behavior-nested-tooltip/source.view/index.html
+++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/1-behavior-nested-tooltip/source.view/index.html
@@ -46,50 +46,5 @@
-
-