e.preventDefault() 方法到底做了啥? [复制]

Posted

技术标签:

【中文标题】e.preventDefault() 方法到底做了啥? [复制]【英文标题】:what e.preventDefault() method really does? [duplicate]e.preventDefault() 方法到底做了什么? [复制] 【发布时间】:2016-01-19 04:49:02 【问题描述】:

我已尝试 preventDefault() 提交表单而无需重新加载页面,但它没有给我任何结果。谁能解释一下 JQuery 中 preventDefault() 方法的目的是什么???

【问题讨论】:

看看api.jquery.com/event.preventDefault 【参考方案1】:

它不是 jQuery 功能,而是传递给 javascript 事件侦听器的 Event 对象的一部分。

https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault

当您将事件侦听器绑定到 DOM 元素时,Event 对象将作为参数传递。触发该事件时会执行该侦听器,但每个事件都有一个默认实现。当您调用event.preventDefault 时,将事件对象标记为已处理,并跳过默认实现。

click 事件发生时,<a> 标记最为明显,因为您可能希望阻止链接被跟踪。但是,它也适用于键盘输入、触摸等。

【讨论】:

【参考方案2】:

简答,来自http://api.jquery.com/event.preventdefault/

说明:如果调用此方法,事件的默认动作 不会被触发。

举个例子:

$("a").click(function( event ) 
  event.preventDefault();
  $("<div>")
    .append( "default " + event.type + " prevented" )
    .appendTo( "#log" );
);

如果点击上面的超链接,那么浏览器将不会尝试重定向浏览器(因为preventDefault() 调用),而是会执行其余的处理并将数据附加到 div。

【讨论】:

以上是关于e.preventDefault() 方法到底做了啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为什么e.preventDefault()会在提交时刷新页面?

即使使用了 e.preventdefault(),在显示警报窗口后退格在 Firefox 中工作

10 动态属性:[name]动态方法@[event]禁止默认提交e.preventDefault()

event事件的preventDefault()

反向 e.preventdefault?

区别 - “e.preventDefault();”和“返回错误;” [复制]