@danyvasnafig

Почему confirm действует только на первый элемент?

По идее код должен работать так, что при нажатии на ссылку появляется confirm, если жму да - переходит по ссылке, если жму нет - срабатывает preventDefault. Для первой ссылки оно работает, а для второй почему-то нет. Помогите пожалуйста:D
let contents = document.getElementById('contents');

contents.onclick = function (e) {
    if(e.target.nodeName != "A") return;
    let conf = confirm(`Переходим на ${e.target.getAttribute('href')}`)
    if(!conf){
    e.preventDefault();
    }


<fieldset id="contents">
    <legend>#contents</legend>
    <p>
      Как насчет почитать <a href="http://wikipedia.org">Википедию</a>, или посетить <a href="http://w3.org"><i>W3.org</i></a> и узнать про современные стандарты?
    </p>
  </fieldset>
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Потому, что во втором случае, e.target равна элементу i
Добавьте в условие
e.target.closest('a')
таким образом, он будет проверять, если ли у кликнутого элемента предок а.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы