У меня есть ссылка на веб-странице. Когда пользователь щелкает по нему, виджет на странице должен обновиться. Однако я что-то делаю, потому что функциональность по умолчанию (переход на другую страницу) выполняется до срабатывания события.
Вот как выглядит ссылка:
<a href="store/cart/" class="update-cart">Update Cart</a>
Вот как выглядит jQuery:
$('.update-cart').click(function(e) {
e.stopPropagation();
updateCartWidget();
});
В чем проблема?
javascript
jquery
events
click
jquery-events
умный пещерный человек
источник
источник
Ответы:
из https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
источник
stopPropagation
иpreventDefault
запутался$('.update-cart').click(function(e) { updateCartWidget(); e.stopPropagation(); e.preventDefault(); }); $('.update-cart').click(function() { updateCartWidget(); return false; });
Следующие методы достигают того же самого.
источник
stopPropagation()
иpreventDefault()
?Вы хотите,
e.preventDefault()
чтобы функция по умолчанию не работала.Или есть
return false
по твоему методу.preventDefault
предотвращает функциональность по умолчанию иstopPropagation
предотвращает всплытие события до элементов контейнера.источник
Вы можете использовать
e.preventDefault();
вместоe.stopPropagation();
источник
Этот код удаляет все прослушиватели событий
var old_element=document.getElementsByClassName(".update-cart"); var new_element = old_element.cloneNode(true); old_element.parentNode.replaceChild(new_element, old_element);
источник