Тогда так, без всяких обработок на уровне документа:
<html> <head> <style type="text/css"> body {margin: 0Px; padding: 0Px;} #onmo {margin: 50Px; padding: 50Px; width: 500Px; height: 500Px; background: #f00;} #onmo a {color: #fff; font: 2em tahoma;} #onmo a:hover {color: #000;} </style> </head> <body> <div id="onmo" onmouseout="var __e = event.relatedTarget || event.toElement; __te = __e.parentNode || __e.parentElement; if(__te.id != this.id) this.style.display = 'none';" onmouseover="this.style.display = 'block';"> <a href="">Link 1...</a><br /> <a href="">Link 2...</a><br /> <a href="">Link 3...</a><br /> <a href="">Link 4...</a><br /> <a href="">Link 5...</a> </div> <body> </html>
З.Ы.
В опере, лисе, ишаке, хромом, сафари работает. Других браузеров под рукой сейчас нет...
Ну не дала покоя мне эта задачка... 😂
neolord, решил я эту задачу, самому интересно стало. Надо не от outa, а от overa плясать (понятно, ведь, почему - в противном случае нарушается событийная модель).
Чуть изменил приведённый ранее пример. Вот рабочий код:
<!-- var __test = 'onmo'; var App = { init: function() { document.body.onmouseover = function(e) { var trgEv = getTarget(e); if(trgEv) { if(trgEv.id != __test && trgEv.parentElement.id != __test) document.getElementById(__test).style.display = 'none'; } return true; } } } function getTarget(e) { evt = e || window.event; return(evt.target || evt.srcElement); } window.onload=App.init; -->
Вот HTML, где действие функции было проверено:
<html> <head> <style type="text/css"> body {margin: 0Px; padding: 0Px;} #onmo {margin: 50Px; padding: 50Px; width: 500Px; height: 500Px; background: #f00;} #onmo a {color: #fff; font: 2em tahoma;} #onmo a:hover {color: #000;} </style> <script type="text/javascript" src="onmo.js"></script> </head> <body> <div id="onmo"> <a href="">Link 1...</a><br /> <a href="">Link 2...</a><br /> <a href="">Link 3...</a><br /> <a href="">Link 4...</a><br /> <a href="">Link 5...</a> </div> <body> </html>
neolord, общий обработчик onMouseOut нужно прописать на весь документ, а внутри обработчика проверку на id нужного блока.
Если совсем в лоб, то можно приблизительно так:
<!-- var App = { init: function() { document.body.onmouseout = function(e) { var trgEv = getTarget(e); if(trgEv) { if(trgEv.id && trgEv.id == 'id блока') document.getElementById(trgEv.id).style.display = 'none'; } return true; } } } function getTarget(e) { evt = e || window.event; return(evt.target || evt.srcElement); } window.onload=App.init; -->
Скрипт в js-файл. Файл подключаем к документу в секции <HEAD>.
Совет: всегда лучше так делать, а не вешать обработчики прямо внутри HTML.
Ctulhu, у тебя, скорее всего, уже установлена такая прога - Windows Movie Maker. Для озвученных целей хватит... Сам юзаю Pinnacle Studio.
Кушать нужно обстоятельно. Остальные "фасты" там же:
За это их нужно срочно разбомбить... ;)
Наоборот название поисковика интересно читается, хоть и с ошибкой...
Поправочка. Ладан - это смола.
Вот это трава!!!
http://www.helicontech.com/isapi_rewrite/, Lite-версия бесплатна...
юни, чуть выше, это уже достаточно конкретно объяснил. Чуть дополню. Человек существо дуалистическое. Душа без тела и тело без души - это уже не человек. Поэтому, для дальнейшей жизни именно в виде человеческого существа они должны вновь соединиться.