Функция щелчка родительского Div вызывается при щелчке по щелчку Child Div - PullRequest
2 голосов
/ 05 июня 2009

Функция щелчка по родительскому элементу вызывается при щелчке по дочернему элементу Div. Как преодолеть эту проблему

Я использую ASP.Net с C #

<div onclick="callme();">
    <a href='#' onclick="Callme2();">Hi</a>
</div>

Когда я нажимаю на тег привязки, элементы div по щелчку также выполняются. Как это побороть?

Ответы [ 3 ]

9 голосов
/ 05 июня 2009

Это, конечно, зависит от браузера.

В новых браузерах звоните

event.stopPropagation();

на объекте события.

В старых версиях IE установите

window.event.cancelBubble = true

Прочтите подробности в Режим причуд .

6 голосов
/ 05 июня 2009

Это связано с пузырьками событий.

<div onclick="callme();">
    <a href='#' onclick="return Callme2();">Hi</a>
</div>

убедитесь, что Callme2() возвращает false, чтобы остановить всплытие события.

0 голосов
/ 05 июня 2009

Я проверил это, и кажется, что внутреннее событие запускается первым. Таким образом, внутреннее событие может установить какой-то флаг. Затем внешнее событие смотрит на этот флаг: если оно установлено, внешнее событие очищает его и возвращает. Если нет, он делает то, что обычно делает. Не так необычно, как другие ответы, которые были опубликованы, но я думаю, что это будет работать и должно быть независимым от браузера, при условии, что все браузеры сначала запускают внутреннее событие (что, я думаю, они делают, основываясь на обсуждении «пузырящихся», опубликованном здесь) 1001 *

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