СКОРПИОН

СКОРПИОН
Рейтинг
120
Регистрация
05.01.2006
neolord:
Ну правда учитывая что таких блоков у меня N, которые генерятся с сервера, засунуть всю их обработку в body.onmouseover мне не представляется возможным

Тогда так, без всяких обработок на уровне документа:


<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.

Кушать нужно обстоятельно. Остальные "фасты" там же:

jpg 1225694069_khkhkh.jpg
Pearl Harbor:
В докладе ЦРУ содержится информация о том что Иран ведет разработку собственной поисковой системы под рабочим названием "Онваг".

За это их нужно срочно разбомбить... ;)

З.Ы.

Наоборот название поисковика интересно читается, хоть и с ошибкой...

Слава Шевцов:
Ато! Чистый ладан.

Поправочка. Ладан - это смола.

Слава Шевцов:
Вне Земли Бога нет. Он целиком находится в ноосфере. И чем больше людей поклоняются ему, тем он сильнее. Церковь - один из мощнейших источников силы Бога. И не Бог родил Иисуса, а Иисус родил Бога. Сначала было его Слово. Потом слово Савла об Иисусе, который и создал христианство.

Вот это трава!!!

Altrate:
Можно было бы сделать редирект через htaccess, но для этого нужен модуль apache, который мой iis сервер не поддерживает.

http://www.helicontech.com/isapi_rewrite/, Lite-версия бесплатна...

Слава Шевцов:
Зачем?

юни, чуть выше, это уже достаточно конкретно объяснил. Чуть дополню. Человек существо дуалистическое. Душа без тела и тело без души - это уже не человек. Поэтому, для дальнейшей жизни именно в виде человеческого существа они должны вновь соединиться.

Всего: 5087