Как остановить поведение кликов по умолчанию с помощью jQuery

У меня есть ссылка на веб-странице. Когда пользователь щелкает по нему, виджет на странице должен обновляться. Однако я что-то делаю, потому что функциональность по умолчанию (переход на другую страницу) происходит до того, как сработает событие.

Вот как выглядит ссылка:

  <a href="store/cart/" class="update-cart">Update Cart</a>

Вот как выглядит jQuery:

   $('.update-cart').click(function(e) { 
         e.stopPropagation(); 
         updateCartWidget(); 
      });

В чем проблема?

Ответ 2

Вы хотите, чтобы e.preventDefault() предотвращал появление функциональных возможностей по умолчанию.

Или используйте return false из своего метода.

preventDefault предотвращает функциональность по умолчанию, а stopPropagation предотвращает пузырьковое событие до элементов контейнера.

Ответ 3

$('.update-cart').click(function(e) {
    updateCartWidget();
    e.stopPropagation();
    e.preventDefault();
});

$('.update-cart').click(function() {
    updateCartWidget();
    return false;
});

Следующие методы достигают того же самого.

Ответ 4

Вы можете использовать e.preventDefault(); вместо e.stopPropagation();

Ответ 5

Этот код блокирует все прослушиватели событий

var old_element=document.getElementsByClassName(".update-cart");    
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);