mouseout: Определить дочерние элементы
Здравствуйте, вопрос такой, у меня есть элемент, у него много дочерних элементов, у этого элемента есть обработчик mouseout, те когда курсор покидает этот элемент надо скрывать его, проблема в том что когда курсор попадает на дочерние элементы тоже срабатывает mouseout хотя этого не надо, как исключить дочерние элеметы? на данный момент всем дочерним элементам у меня присвоен класс, я смотрю если есть такой класс то забить на этот элемент и ни чего не закрывать, все вроди работет но както косячно: когда быстро увожу мышку элемент не закрываеться (не срабатывает mouseout) и както глупо проверять элементы по классам, может есть еще варианты как с этим справиться?
|
Надо узнавать куда курсор ушел. И проверять является ли этот элемент дочерним по отношению к нужному вам элементу.
|
<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> |
помогло это:
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, время: 15:08. |