В Javascript, как предотвратить Default для дочернего элемента из родительского обработчика событий
Предположим, у меня есть HTML, как это:
<div>
<a href="http://google.com">Google</a>
</div>
И у меня есть такой обработчик событий (предположим, у меня есть jQuery):
$('div').on('click', function(ev) {
// ...
});
Возможно ли из этого обработчика предотвратить действие по умолчанию <a>
ссылка на сайт? Или уже слишком поздно? (Другими словами, должен ли я прикрепить событие к <a>
или ниже, чтобы предотвратить действие ссылки по умолчанию, или его можно остановить в описанном выше обработчике).
Как уже было сказано выше, у меня есть jQuery, если этого требует решение.
2 ответа
Решение
Это определенно будет работать:
$('div').on('click', "a", function(e) {
e.preventDefault();
});
Вот скрипка: http://jsfiddle.net/xvKNC/1/
Оставайтесь на линии. в Chrome это работает нормально
// prevent default on every click in the div
$('div').on('click', function(ev) {
ev.preventDefault();
});
Смотрите обновленную скрипку: http://jsfiddle.net/xvKNC/2/
Похоже на работу
$('div').on('click', function(ev) {
ev.stopImmediatePropagation();
ev.preventDefault();
});
JSFiddle: http://jsfiddle.net/3yFfC/