Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   mouseout: Определить дочерние элементы (https://javascript.ru/forum/misc/7426-mouseout-opredelit-dochernie-ehlementy.html)

Papa 31.01.2010 22:52

mouseout: Определить дочерние элементы
 
Здравствуйте, вопрос такой, у меня есть элемент, у него много дочерних элементов, у этого элемента есть обработчик mouseout, те когда курсор покидает этот элемент надо скрывать его, проблема в том что когда курсор попадает на дочерние элементы тоже срабатывает mouseout хотя этого не надо, как исключить дочерние элеметы? на данный момент всем дочерним элементам у меня присвоен класс, я смотрю если есть такой класс то забить на этот элемент и ни чего не закрывать, все вроди работет но както косячно: когда быстро увожу мышку элемент не закрываеться (не срабатывает mouseout) и както глупо проверять элементы по классам, может есть еще варианты как с этим справиться?

Мараторий 01.02.2010 18:21

Надо узнавать куда курсор ушел. И проверять является ли этот элемент дочерним по отношению к нужному вам элементу.

vk65535 01.02.2010 18:36

<div style="padding: 30px; float: left; background-color: silver;"
	onmouseover="this.style.display='';" onmouseout="this.style.display='none';" >

	<div style="background-color: gray;" >дочерние элементы</div>
</div>

Papa 03.02.2010 20:29

помогло это:

function isChild(e, p) {
while(e) {
if (e == p) return true;
else e = e.parentNode;
}
return false;
}
function elemOut(e) {
e = e || window.event;
return e.relatedTarget || e.toElement;
}


Часовой пояс GMT +3, время: 07:32.