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 中工作