event.preventDefault() 与 JavaScript 事件处理中的 return false
大家好!我开始学习 JavaScript 和 jQuery,遇到了一个令人困惑的情况。当我想取消浏览器的默认行为(例如链接跳转或表单提交)时,我看到两种方法:可以调用 `event.preventDefault()`,或者只需在处理程序末尾写 `return false`。
例如,我有这样一个表单:
```html
```
我写了一个处理程序:
```javascript
document.getElementById('myForm').addEventListener('submit', function(event) {
// 数据验证...
event.preventDefault();
});
```
但在 jQuery 中,我经常看到这样的代码:
```javascript
$('#myForm').on('submit', function() {
// 数据验证...
return false;
});
```
看起来两者做的是同一件事——表单不会提交。但我注意到,如果我在纯 JavaScript(没有 jQuery)中使用 `return false`,它不起作用。而在 jQuery 中却有效。
那么区别到底在哪里呢?