当前位置: 首页 > 面试题库 >

JavaScript event.preventDefault()与返回false

史和泰
2023-03-14
问题内容

当我想阻止其他事件处理程序在某个事件被触发后执行时,可以使用两种技术之一。我将在示例中使用jQuery,但这也适用于纯JS:

1。 event.preventDefault()

$('a').click(function (e) {
    // custom handling here
    e.preventDefault();
});

2。 return false

$('a').click(function () {
    // custom handling here
    return false;
});

这两种停止事件传播的方法之间是否有显着差异?

对我来说,return false;比执行方法更简单,更短并且更容易出错。使用该方法时,您必须记住正确的大小写,括号等。

另外,我必须在回调中定义第一个参数才能调用该方法。也许,出于某些原因,我应该避免这样做并preventDefault改为使用它?有什么更好的方法?


问题答案:

return falsejQuery事件处理程序内部进行
调用实际上e.preventDefaulte.stopPropagation在传递的jQuery.Event对象上进行调用相同 。

e.preventDefault()将防止发生默认事件,e.stopPropagation()将防止事件冒泡,并且return false两者都会发生。请注意,此行为不同于 正常 (非jQuery的)事件处理程序,其中,值得注意的是,return false没有
冒泡停止该事件。



 类似资料:
  • 问题内容: 我有一个如下定义的可连接pthread运行器函数: 该线程应该加入主线程。 每当我通过Valgrind运行程序时,都会出现 以下泄漏 : 我检查了手册页中的pthread,其中说: 奇迹般地,当我用return语句替换pthread_exit()时, 泄漏消失了 。 我的实际问题有三点: 有人可以解释为什么return语句没有泄漏吗? 相对于从线程退出,两个语句之间是否存在一些根本区别

  • 问题内容: 我想知道是否和相同。 例如,如果事件处理程序是使用旧模型添加的 }; 然后,阻止默认操作,例如。 如果事件处理程序使用添加,例如 ); 然后,不要阻止默认操作。 所有浏览器的行为都一样吗? 和之间还有更多区别吗? 在哪里可以找到一些有关行为的文档(我在MDN中找不到)? 问题答案: 的W3C文档对象模型事件规范在 _1.3.1。 事件注册接口_指出,EventListener中没有返回

  • 更新 我已经读了十几篇关于这个话题的文章,但没有一篇涉及到这个基本问题。我将在本文末尾列出一个参考资料部分。 原始帖子 我对函数的理解是,它返回一个promise。 MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function 在我的程序中,我可以编写如下内容: 我

  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 问题内容: 该方法返回的表示形式。这里返回的对象是数组支持的,但不是对象。 我正在寻找对象返回值与对象之间的差异- 一种快速的来源,可以告诉它们而无需深入研究代码。 TIA。 问题答案: 当您调用Arrays.asList时,它不会返回。它返回一个由原始源数组支持的固定大小列表。换句话说,它是使用Java的基于集合的API公开的数组的视图。 您不能向其中添加元素,也不能从中删除元素。如果您尝试从中

  • 问题内容: 我看到的问题是我正在尝试将Gorilla mux Router.Handle函数与一起使用。 这不起作用(图像返回404)。 这有效(图像显示正常)。 下面简单的转到Web服务器程序,显示问题… 问题答案: 我将其发布在golang-nuts讨论组上,并 从 ToniCárdenas获得了此解决方案 … 标准的net / http ServeMux(这是您在使用时使用的标准处理程序)和