ошибка тут
document.getElementById('#bla')
по привычке написал с решеткой (обычно использую querySelectorAll).
пример:
<!DOCTYPE HTML>
<html>
<head>
<style>
#bla {
width:200px;
height:200px;
border:5px solid black;
}
</style>
</head>
<body>
<div id='bla'>
</div>
<script>
function hover (opt) {
opt.elem.onmouseover = ElemMouseAction;
opt.elem.onmouseout = ElemMouseAction;
function ElemMouseAction (evt) {
var related, Call;
var e = evt || event;
if(e.type == 'mouseover'){
Call = opt.over;
related = e.relatedTarget || e.fromElement;
} else {
Call = opt.out;
related = e.relatedTarget || e.toElement;
}
while (related && related != this) {
related = related.parentNode;
}
if(related == this) return;
Call();
}
}
hover({
elem:document.getElementById('bla'),
over:function () {// срабатывает при mouseover
alert('over');
},
out:function (){// срабатывает при mouseout
alert('out');
}
});
</script>
</body>
</html>
Сообщение от kingrus
|
неужели нет выхода попроще?)
|
и так просто вариант.
Сообщение от kingrus
|
Сразу же на это идет ругня baga
Мб я не так, что делаю...
если можно коммент напишите на "function hover (opt)" и function ElemMouseAction (evt) без коммента тяжко разобрать
|
в нутрь если не знаешь тут лучше не лезть можно запутаться тут
if(e.type == 'mouseover'){
Call = opt.over;
related = e.relatedTarget || e.fromElement;
} else {
Call = opt.out;
related = e.relatedTarget || e.toElement;
}
просто передаете элемента , и функцию которая выполняется при over и out.