Кнопка поверх привязки — как предотвратить щелчок по умолчанию?

#html #button #preventdefault

#HTML #кнопка #preventdefault

Вопрос:

У меня есть кнопка поверх привязки (изображения)

У меня есть предупреждение для каждого (кнопка и привязка).

После того, как я нажму кнопку, привязка также будет сопровождаться предупреждением. Как мне предотвратить инициализацию привязки после нажатия кнопки?

см. jsfiddle —> http://jsfiddle.net/EhWZc /

HTML:

 <a href='#' onclick='alert("Im an anchor");'>
   <button id='delBtn' onclick="alert('Im a button');">x</button>
   <img src='http://www.extremetech.com/wp-content/uploads/2013/05/image-1.jpg' style='width:200px;'/>
</a>
 

Комментарии:

1. есть ли причина, по которой вы изначально вкладываете кнопку в тег привязки? Это срабатывает, потому что кнопка является дочерним элементом привязки. Вы могли бы заставить привязку возвращать false, но в первую очередь общая идея странная

2. Это для более крупного проекта. Я использую fancybox — когда пользователь нажимает на уменьшенное изображение, появляется фотография большого размера. Я пытаюсь изменить его таким образом, чтобы при наведении курсора мыши на пользователя появлялась кнопка «x» и позволяла пользователю удалять изображение. Итак, есть цель щелкнуть привязку, потому что плагин требует, чтобы img был вложен в привязку

Ответ №1:

В этом случае вам нужно использовать функцию stopPropagation вместо preventDefault, как показано ниже.

  $('#delBtn').on('click', function(e){                   
        e.stopPropagation();  
});
 

stopPropagation останавливает запуск события в цепочке событий.

preventDefault предотвращает действие по умолчанию, которое браузер выполняет для этого события.

ДЕМОНСТРАЦИЯ