Tengo un enlace en una página web. Cuando un usuario hace clic en él, se debe actualizar un widget en la página. Sin embargo, estoy haciendo algo, porque la funcionalidad predeterminada (navegar a una página diferente) ocurre antes de que se active el evento.
Así es como se ve el enlace:
<a href="store/cart/" class="update-cart">Update Cart</a>
Así es como se ve jQuery:
$('.update-cart').click(function(e) {
e.stopPropagation();
updateCartWidget();
});
¿Cuál es el problema?
javascript
jquery
events
click
jquery-events
smartcaveman
fuente
fuente
Respuestas:
de https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
fuente
stopPropagation
ypreventDefault
confundido$('.update-cart').click(function(e) { updateCartWidget(); e.stopPropagation(); e.preventDefault(); }); $('.update-cart').click(function() { updateCartWidget(); return false; });
Los siguientes métodos logran exactamente lo mismo.
fuente
stopPropagation()
ypreventDefault()
?Quiere
e.preventDefault()
evitar que se produzca la funcionalidad predeterminada.O tener
return false
de tu método.preventDefault
evita la funcionalidad predeterminada ystopPropagation
evita que el evento se propague a los elementos del contenedor.fuente
Puedes usar en
e.preventDefault();
lugar dee.stopPropagation();
fuente
Este código elimina todos los oyentes de eventos
var old_element=document.getElementsByClassName(".update-cart"); var new_element = old_element.cloneNode(true); old_element.parentNode.replaceChild(new_element, old_element);
fuente