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

sma*_*man 81 javascript jquery events click jquery-events

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

这就是链接的样子:

  <a href="store/cart/" class="update-cart">Update Cart</a>
Run Code Online (Sandbox Code Playgroud)

这就是jQuery的样子:

   $('.update-cart').click(function(e) { 
         e.stopPropagation(); 
         updateCartWidget(); 
      });
Run Code Online (Sandbox Code Playgroud)

问题是什么?

Upv*_*ote 130

e.preventDefault();
Run Code Online (Sandbox Code Playgroud)

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

如果事件可以取消,则取消该事件,而不停止事件的进一步传播.

  • 谢谢,我有'stopPropagation`和`preventDefault`混淆了 (7认同)

Jon*_*ter 28

您希望e.preventDefault()阻止发生默认功能.

或者return false从你的方法.

preventDefault阻止默认功能并stopPropagation防止事件冒泡到容器元素.


Pee*_*ter 28

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

$('.update-cart').click(function() {
    updateCartWidget();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

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

  • 看看乔纳森的回答,他解释了每个功能的作用.但基本上,要确保您刚刚处理的点击不会被其他人处理. (2认同)