#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
предотвращает действие по умолчанию, которое браузер выполняет для этого события.