Запретить запуск родительского контейнера при нажатии на гиперссылку

На моей веб-странице у меня есть список файлов.

Каждый файл находится в нем собственный контейнер div (div class= "file" ). Внутри контейнера есть ссылка на файл и описание.

Я хотел разрешить пользователю щелкнуть в любом месте контейнера, чтобы загрузить файл. Я сделал это, добавив событие click в контейнер и извлекая href дочерней ссылки.

Когда файл открывается в новом окне, если пользователь нажимает на ссылку, файл открывается дважды.

Таким образом, мне нужно предотвратить запуск события щелчка родительского контейнера при нажатии гиперссылки. Будет ли лучший способ сделать это, чтобы добавить функцию щелчка в гиперссылку to0 и установить event.stopPropagation? Предположительно, это остановило бы событие от пузырьков до контейнера.

Спасибо Бен

Ответ 2

В модели Microsoft вы должны установить для свойства cancelBubble значение true.

window.event.cancelBubble = true;

В модели W3C вы должны вызвать метод stopPropagation() событий.

event.stopPropagation();

Здесь кросс-браузерное решение, если вы не используете фреймворк:

function doSomething(e) {
    if (!e) e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

Ответ 3

Спасибо за помощь.

Я использовал jQuery, но хорошо понимал нефреймовое решение.

Для ссылок добавлено следующее:

    $(".flink").click(function(e) {
        e.stopPropagation();
    });

Бен