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

IT技术 javascript jquery events click jquery-events
2021-01-29 01:27:08

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

这是链接的样子:

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

这是 jQuery 的样子:

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

问题是什么?

6个回答
e.preventDefault();

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

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

谢谢,我有stopPropagationpreventDefault困惑
2021-03-15 01:27:08
$('.update-cart').click(function(e) {
    updateCartWidget();
    e.stopPropagation();
    e.preventDefault();
});

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

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

看看 Jonathons 的回答,他解释了每个函数的作用。但基本上,要确保您刚刚处理的点击稍后不会被其他人处理。
2021-03-18 01:27:08
为什么我需要调用stopPropagation()preventDefault()
2021-04-10 01:27:08

您希望e.preventDefault()防止出现默认功能。

或者return false从你的方法。

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

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