Снизу комментариями пометил где и что не понятно, помогите пожалуйста разобраться.
<script>
function isOutside(evt, parent) {
var elem = evt.relatedTarget || (evt.type == 'mouseout' ? evt.toElement : evt.fromElement);
while ( elem && elem !== parent) { //не пойму , что написано в условии
elem = elem.parentNode; // тут тоже не пойму, что написано
}
if ( elem !== parent) {
return true;
}
}
var parent = document.getElementById('parent')
parent.onmouseover = parent.onmouseout = function(e) { // и от сюда и до конца не понятно
e = e || event;
if (!isOutside(e, this)) return;
parent.nextSibling.nodeValue = new Date() + ' ' + e.type;
}
</script>