Делает e.stopPropagation() в jquery работает на теге привязки
Я хочу, чтобы предотвратить событие из элемента внутри тега привязки, я пытаюсь использовать e.stopPropagation(); он, кажется, не работает, это возможно, или я просто трачу время, пожалуйста, помогите мне отсюда
javascript:
$(document).ready(function(){
$('.alink .p').click(function(e){
alert("hi");
e.stopPropagation();
});
html:
<div>
<a href="#" onclick="location.href='http://google.com'; return false;" class="alink" >Google links
<p class="p">Another Links to prevent default</p>
</a>
</div>
спасибо за ваше драгоценное время
Ответы
Ответ 1
event.stopPropagation()
перестает передавать событие обработчикам дальше в структуре DOM из элемента, на котором было инициировано событие изначально. Это не предотвращает действие, которое уже было запущено.
Вы должны использовать event.preventDefault()
, чтобы остановить упомянутое выше действие по умолчанию.
Источники:
Ответ 2
Описание
Он не остановит поведение по умолчанию (например, ссылки на клики), и вам может потребоваться использовать event.preventDefault() в дополнение к этот метод.
event.stopPropagation()
предназначен только для обработчиков событий, а не для поведения по умолчанию.
event.preventDefault()
Если этот метод вызывается, действие по умолчанию для события не будет активировано.
У вас были некоторые орфографические ошибки в script и document
not "document"
.
Пример
$(document).ready(function(){
$('.alink, .alink > .p').click(function(e){
e.preventDefault();
e.stopPropagation();
alert("hi");
});
});
Дополнительная информация
Ответ 3
попробуйте это
$(document).ready(function(){
$('.alink .p').click(function(e){
e.preventDefault();
e.stopImmediatePropagation();
alert("hi");
return false;
});
});
Ответ 4
вы должны использовать- e.preventDefault()
, чтобы остановить поведение по умолчанию. stopPropagation используется для остановки пузырьков событий.
Ответ 5
Вы пропустили заключенные здесь скобки, не так ли?
$('document').ready(function(){
$('.alink .p').click(function(e){
alert("hi");
e.stopPropagation();
});
Скопируйте скобки, а затем используйте e.preventDefault().