Mam łącze na stronie internetowej. Gdy użytkownik go kliknie, widżet na stronie powinien zostać zaktualizowany. Jednak coś robię, ponieważ domyślna funkcjonalność (przejście do innej strony) występuje przed uruchomieniem zdarzenia.
Tak wygląda link:
<a href="store/cart/" class="update-cart">Update Cart</a>
Oto jak wygląda jQuery:
$('.update-cart').click(function(e) {
e.stopPropagation();
updateCartWidget();
});
Jaki jest problem?
javascript
jquery
events
click
jquery-events
smartcaveman
źródło
źródło
Odpowiedzi:
z https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
źródło
stopPropagation
ipreventDefault
zdezorientowałem$('.update-cart').click(function(e) { updateCartWidget(); e.stopPropagation(); e.preventDefault(); }); $('.update-cart').click(function() { updateCartWidget(); return false; });
Następujące metody dają dokładnie to samo.
źródło
stopPropagation()
ipreventDefault()
?Chcesz
e.preventDefault()
zapobiec występowaniu domyślnych funkcji.Lub masz
return false
ze swojej metody.preventDefault
zapobiega domyślnej funkcjonalności istopPropagation
zapobiega przedostawaniu się zdarzenia do elementów kontenera.źródło
Możesz użyć
e.preventDefault();
zamiaste.stopPropagation();
źródło
Ten kod usuwa wszystkie detektory zdarzeń
var old_element=document.getElementsByClassName(".update-cart"); var new_element = old_element.cloneNode(true); old_element.parentNode.replaceChild(new_element, old_element);
źródło