Я только что столкнулся с этой довольно раздражающей проблемой, и я действительно упускаю некоторые объяснения того, почему происходит такое поведение - и самое главное , как его обойти .
Iиметь некоторый динамический контент, который создается с использованием jQuery для определенного события.Когда содержимое создано, к элементу добавляется прослушиватель событий on("click")
, который останавливает распространение элемента: e.stopPropagation()
.
Однако, поскольку элемент содержит теги привязки, которыми я хочу управлять, я хотел бы добавить e.preventDefault()
к тегам привязки - однако, похоже, e.stopPropagation()
отменяет e.preventDefault()
.
Проблема воссоздана ниже:
$(document).on("click", ".test-a, .test-b", function(e){
e.preventDefault();
alert("test");
});
$("body").append('<a class="test-a" href="#">Click this to see what happens when e.stopPropgation() is active (nothing)</a>');
$("body").append('<a class="test-b" href="#">Click this to see what happens when only e.preventDefault() is active</a>');
$(".test-a").on("click", function(e){
e.stopPropagation();
})
a{
display:block;
margin-bottom: 40px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>