如何停止使用jQuery的默认链接点击行为

我有一个网页上的链接。 当用户点击它时,页面上的小部件应该更新。 不过,我正在做一些事情,因为默认function(导航到不同的页面)发生在事件触发之前。

这是链接的样子:

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

这是jQuery的样子:

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

问题是什么?

 e.preventDefault(); 

https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault

取消事件,如果它是可取消的,而不停止事件的进一步传播。

你想要e.preventDefault()来防止发生默认的function。

或者从你的方法return false

preventDefault防止默认function, stopPropagation防止事件冒泡到容器元素。

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

以下方法实现完全相同的事情。

你可以使用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);