3

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

     $(document).ready(function( )
     {

       $("button").click(function(e)
       {

         e.preventDefault();  

          alert('button clicked');

       });

      });

我有一个按钮。e.preventDefault() 的目的是什么。从我读到的内容来看,它将阻止在这种情况下是点击的动作。

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

4

5 回答 5

7

preventDefault 是防止默认的浏览器动作。因此,如果您要输入以下内容:

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

单击链接将无济于事。或在提交按钮上 - 不会提交表单

于 2012-08-21T22:54:52.360 回答
0

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

更多阅读

于 2012-08-21T22:53:50.307 回答
0

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

于 2012-08-21T22:55:18.317 回答
0

$.preventDefault();将阻止“默认”操作的发生。例如,如果您使用已经href分配了一个锚链接,然后将其添加preventDefault();到所述锚,它将不再链接。

于 2012-08-21T22:56:29.347 回答
0

You need to remember that without adding your own Click callback function there is still an Event that will fire in the browser - e.g. for an "a" tag this would be to load the URL in the href attribute, for a submit button it would be to Post/Get to the URL in the Form "Action" attribute - in both cases e.preventDefault() would stop this happening

于 2012-08-21T22:57:29.027 回答