В 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/

Другие вопросы по тегам