Как я могу остановить событие onclick от запуска родительского элемента при нажатии на дочерний элемент? - PullRequest
11 голосов
/ 12 июня 2009

У меня две проблемы с событиями onclick, они чем-то похожи, поэтому я спрошу их обоих здесь.

Во-первых:

У меня есть флажок в div. Вход имеет функцию onchange, а div имеет функцию onclick.

<div onclick="doSomething()">
     <input type="checkbox" onchange="doSomethingElse()" />
</div>

Проблема в том, что, когда я ставлю / снимаю флажок, срабатывает одновременно doSomething () и doSomethingElse (). Любые идеи о том, как предотвратить это? Я попытался сделать onchange = "doSomethingElse (событие)" и функцию в doSomethingElse (e) у меня была e.stopPropagation (); и это не сработало.

Второе:

У меня есть изображение в div. У div есть функция onclick, а у изображения - нет. Изображение намеренно больше, чем div, и выходит за пределы div.

-----------------------
|        image        |
|   ---------------   |
|   |     div     |   |
|   |             |   |
|   ---------------   |
|                     |
-----------------------

Я хочу, чтобы онклик срабатывал только в том случае, если пользователь щелкает в пределах границ блока div. Тем не менее, событие onclick также запускается, если вы щелкнете мышью по части изображения, которая вышла наружу из div ... Любые идеи?

Первый вопрос для меня важнее, чем второй. Но если кто-то может ответить на оба вопроса, это было бы здорово!

Заранее спасибо за помощь,
Matt

Ответы [ 11 ]

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

Во-вторых, вы можете поместить свой div перед изображением, и не иметь тегов изображения внутри div. Это должно дать вам необходимую функциональность.

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