Ev.DOMit = function (e) {
e = e ? e : window.event; // e IS passed when using attachEvent though ...
if (!e.target) {
e.target = e.srcElement;
}
if (!e.preventDefault) {
e.preventDefault = function() {
e.returnValue = false;
return false;
};
}
return e;
};
Ev.getTarget = function (e) {
e = Ev.DOMit(e);
var tgt = e.target;
if (tgt.nodeType !== 1) {
tgt = tgt.parentNode;
}
return tgt;
};
Я видел выше кода из одного файла JSпытается понять некоторые JS коды с сайта
Вопросы:
1.
e.returnValue = false;
return false;
, поскольку у нас уже есть эта строка: e.returnValue = false;
, почему мы должны иметь эту строку здесь: return false;
?
2.
if (tgt.nodeType !== 1) {
tgt = tgt.parentNode;
}
что это за линия?
W3schools - ужасный ресурс. MDN документирует это точно так же, и намного надежнее. –
@JanDvorak - предоставить эквивалентную ссылку –
@TobyAllen найти возможные значения легко: https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType; вы даже можете увидеть, какой из этих типов узлов устарел (W3S скрывает тот факт, что некоторые из них). Для nodeValues см. Https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue. Одна вещь, которую я не нашел, - это удобная таблица резюме каждого типа, но это потому, что MDN - это ссылочный сайт, а не сайт учебника. И, честно говоря, эти сводки ничего мне не говорят - они выглядят довольно автогенерированными. –