Как я могу остановить родительские события от запуска? - PullRequest
1 голос
/ 25 мая 2009

Если у меня есть ...

<div id="parent" onmouseover="doSomething()">
    <div id="child" onmouseover="doSomethingElse()">
    </div>
</div>

Как я могу сделать так, чтобы doSomething () не выполнялся, когда я наводил курсор на ребенка? Я хочу, чтобы doSomethingElse () выполнялся только тогда, когда я наводил курсор на дочерний элемент, и я хотел, чтобы doSomething () выполнялся только когда я зависаю над родителем.

Всякий раз, когда я наводю курсор на ребенка, выполняются обе функции. Есть идеи?

Мэтт

Ответы [ 3 ]

1 голос
/ 25 мая 2009

Изменить значение атрибута на

onmouseover="doSomethingElse(event)"

и изменить doSomethingElse() на

function doSomethingElse(e) {
    e.stopPropagation && e.stopPropagation();
    e.cancelBubble = true;
    // ...
}
1 голос
/ 25 мая 2009
function doSomethingElse(e) {
// your function body

e.stopPropagation() 

}
0 голосов
/ 25 мая 2009

Я не проверял это, но должно быть несколько способов сделать это.

Пожалуйста, проверьте всплывающее окно событий: оно отличается в IE и Firefox, но все же: www.quirksmode.org/js/events_order.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...