e.preventDefault阻止点击

我有以下代码来测试e.preventDefault()的工作原理。 我认为它会阻止点击事件的发生。

$(document).ready(function( ) { $("button").click(function(e) { e.preventDefault(); alert('button clicked'); }); }); 

我有一个按钮。 e.preventDefault()的目的是什么? 根据我的阅读,它将阻止在这种情况下是点击的动作。

请注意,在上面的示例中,警报消息仍然显示。 e.preventDefault()如何用于按钮单击。 我知道如果它是一个超链接,它会阻止超链接转到它的目标。

preventDefault是为了防止默认的浏览器操作。 所以,如果你将这样的东西:

 $("a").click(function(e){e.preventDefault();}) 

点击链接将无能为力。 或者在提交按钮 – 表单将不会被提交

它无法阻止点击发生,因为您在其中设置了一个事件处理程序,该事件处理程序在事件触发执行。

它阻止的是DOM对象接收“点击”。 因此,如果您是按钮提交表单,则不会立即提交。 之后的alert()会被执行,不管你说什么,嘿! 停止点击,然后执行此操作!

更多阅读

您需要记住,如果不添加自己的Click回调函数,仍然会在浏览器中触发一个事件 – 例如,对于“a”标记,这将是在href属性中加载URL,对于提交按钮,它将是发布/获取表单“操作”属性中的URL – 在这两种情况下,e.preventDefault()都会阻止这种情况发生

$.preventDefault(); 将阻止“默认”操作发生。 例如,如果您获取已经为其分配了href的锚链接,然后添加preventDefault(); 说锚将不再链接。