event.preventDefault() 与返回 false
技术问答
261 人阅读
|
0 人回复
|
2023-09-12
|
当我想在事件被触发后阻止其他事件处理程序时,我可以使用两种技术之一。我将在示例中使用 jQuery,但也适用于纯 JS:1 U9 H; B! @, f4 f
1. event.preventDefault()$('a').click(function (e) / custom handling here e.preventDefault();code]2. return false[code]$('a').click(function ()()()()())()()()()()()()())()())())())())()())())()())()())()()()))())()())())())())())())()))())())())())())())())())()())()())()())())()())())()())())())())())()())())())()())())())())()()())()())()())()())()()()()()()()()())())())()))())())()))())())()())()))()))())())())()))()()()()()))()))()))()())()())()))()))()()())()))())))()))()))()))()))()()()))()()()())()))())())))()()()())()()))))())))))))()))))()))())))())))()())())())()))())()()()()()))())))))())))()()()()()())))))()))))))()()))))())()))))()())())())()()()()())())())()))()))))()))))())))())))()))))())))())))()()()()()()())())))custom handling here return false;});
1 Y8 e3 Z3 F. J3 O5 n4 a 这两种停止事件传播的方法有什么显著区别吗?: ] C( ?, ]! T! }& V$ @0 X
对我来说,return false;它比执行方法更简单、更短、更不容易出错。使用此方法时,您必须记住正确的大小写、括号等。1 j7 ^3 K G5 O2 O- M3 F5 T
此外,在调用该方法之前,我必须在回调中定义第一个参数。也许有一些原因,我应该避免这样做并改用它preventDefault?更好的方法是什么?
/ V3 A# ~. L: I# `% \' ?) A1 y5 ~! _ * z$ P) y; T5 u4 r" T# m
解决方案:
8 f7 y4 z* ^# h4 S return false从jQuery 事件处理程序e.preventDefault中调和调用e.stopPropagation传递的jQuery.Event 对象实际上是相同的 。
3 A" V$ r( f$ Q9 h! A1 a8 @e.preventDefault()预防默认事件,e.stopPropagation()防止事件冒泡,return false两者兼而有之。请注意这种行为和普通(非 jQuery)事件处理程序不同,值得注意的是,return false不会阻止事件冒泡。 |
|
|
|
|
|