jQuery event.preventDefault 的 Javascript 本机等效项 [重复]

Posted

技术标签:

【中文标题】jQuery event.preventDefault 的 Javascript 本机等效项 [重复]【英文标题】:Javascript native equivalent for jQuery event.preventDefault [duplicate] 【发布时间】:2012-09-27 07:28:37 【问题描述】:

可能重复:event.preventDefault() vs. return false

我不确定,但据我所知,event.preventDefault 来自jQuery。如果是,我想知道 javascript 中是否有任何本机等效项做同样的事情?

【问题讨论】:

preventDefault 是一种 DOM 方法。请参阅 W3C 规范here。 我觉得这个问题和那个不一样。 @Barmar 主题是相同的,答案在这两种情况下都适用,那么两者兼而有之有什么价值? @PraveenKumar 如果您完整阅读该问题,您会看到他们将preventDefaultreturn false 进行比较……我的问题似乎与此类似? @PHeiberg 谢谢!这就是我要找的!您能否发表您的评论作为答案,对其他人也有帮助! :) 【参考方案1】:

preventDefault 是一种 DOM 方法。请参阅 W3C 规范here。

【讨论】:

【参考方案2】:

jQuery 环绕原生 JavaScript 事件对象。 preventDefault 是 JavaScript 方法。你可以通过return false;在jQuery中实现preventDefault

【讨论】:

是的,我认为这是真的。但是当我们没有 jQuery 时,Javascript 中的任何等价物呢? @Mahdi preventDefault 与 JavaScript 而非 jQuery 有关。 如果您从 jQuery 事件处理程序返回 false,则相当于同时调用 preventDefault stopPropagation。它与调用 preventDEfault only 不同 jQuery return false 负责处理 preventDefault 和 stopPropagation。 preventDefault 表示停止默认行为,例如单击链接不应打开链接。而 stopPropagation 就是停止其他监听器监听这个事件。【参考方案3】:

return false 来自 jQuery 事件处理程序 实际上与在传递的 jQuery.Event object. 上调用 e.preventDefaulte.stopPropagation 相同

e.preventDefault() 将阻止默认事件发生,e.stopPropagation() 将阻止事件冒泡,return false 将同时执行这两项操作。请注意,此行为不同于 普通(非 jQuery)事件处理程序,其中特别是 return false does not stop the event from bubbling up。

来源:https://***.com/a/1357151

【讨论】:

以上是关于jQuery event.preventDefault 的 Javascript 本机等效项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JSHint - ^ '简洁方法' 在 ES6 中可用

jQuery—— jQuery 概述 / jQuery 选择器 / jQuery 样式操作 / jQuery 效果

jQuery 知识体系

jQuery

jQuery插件开发:jQuery类方法

XMLHttpRequest、jQuery.ajax、jQuery.post、jQuery.get 有啥区别