У меня есть эта небольшая проблема, и я прошу вас о помощи. У меня есть элемент div, внутри которого у меня есть элемент img, например
<div id="parent" onmouseover="MyFuncHover()" onmouseout="MyFuncOut()">
<img id="child" src="button.png" style="visibility: hidden" />
</div>
<script type="text/javascript">
function MyFuncHover() {
// Here I have some code that makes the "child" visible
}
function MyFuncOut() {
// Here I have some code that makes the "child" invisible again
}
</script>
Как вы видите, изображение является дочерним элементом div. Я хочу, чтобы только когда я покинул div, ребенок должен исчезнуть. Тем не менее, похоже, что когда я перемещаю мышь над изображением, вызывается функция MyFuncOut() (потому что, я полагаю, я оставляю div, наводимая на изображение). Я не хочу, чтобы это произошло. Я хочу, чтобы функция MyFuncOut() вызывалась только тогда, когда я покидал область div.
Я не знал, что когда вы наводите указатель мыши на дочерний элемент управления, он родитель вызывает событие mouseout (даже если я над ребенком, я все равно над родителем). Я попал в ловушку, и мне нужно немного вашего хорошего совета. Спасибо!
ИЗМЕНЕНИЯ
O.K. Событие bubbling не отправит событие "mouseout" родительскому элементу, когда я "вытаскиваю" дочерний элемент. Он также не отправит событие "mouseover" родительскому элементу, когда я "навешиваю" на ребенка. Это не то, что мне нужно. Мне нужно, чтобы "mouseout" событие родителя не отправлялось, когда я "навешиваю" на ребенка. Возьми? Событие барботажа полезно, когда я не хочу, например, событие click для дочернего объекта, которое будет распространено на родителя, но это не мое дело. Что странно, так это то, что у меня есть другие элементы внутри одного и того же родителя, которые не запускают событие "mouseout" родителя, когда я "навешиваю на них" их.