如何停止使用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);