转自:https://blog.mightyherox.me/Web-API-event-preventdefault-%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8/
今天阅读某个项目源码时候遇到了 event.preventdefault()
这行代码。之前有遇到过几次,也去 MDN 查看了它的介绍,但还是不太理解它的实际应用场景。直到今天看到这部分源码才恍然大悟。
Event
接口的preventDefault()
方法,告诉user agent:如果此事件没有被显式处理,它默认的动作也不应该照常执行。此事件还是继续传播,除非碰到事件侦听器调用stopPropagation()
或stopImmediatePropagation()
,才停止传播。——MDN
从 MDN 的解释我们可以了解到 event.preventdefault()
的作用是停止事件的默认动作,然后呢?它的实际应用场景是什么?
一般情况下,我们会使用 <a>
标签时候跳转到新的网页。
HTML
<a id="clickMe" href="https://blog.mightyherox.me/" target="_blank">跳转到多度橙的博客</a>
但有时候我们会利用 <a>
标签当作按钮,它本身就拥有链接的功能,但我们会为它添加类似 onclick
事件。只要在 <a>
标签触发的事件中加入 event.preventdefault()
,就不会执行它的默认动作,也就是不会再执行「链接到某个网址」动作。
HTML
<a id="clickMe" href="https://blog.mightyherox.me/" target="_blank">about Me</a>
JavaScript
document.getElementById('clickMe').onclick = (event) => { alert("Hey there
nba2k23球员列表(八) nba2k23球员列表(七) nba2k23球员列表(六) nba2k23球员列表(五) nba2k23球员列表(四) nba2k23球员列表(三) nba2k23球员列表(二) nba2k23球员列表(一) nba2k22球员列表(四) nba2k22球员列表(三) nba2k22球员列表(二) nba2k22球员列表(一) NBA2K21球员大全 NBA2K20球员列表(五) NBA2K20球员列表(四) NBA2K20球员列表(三) NBA2K20球员列表(二) NBA2K20球员列表 wsl docker 突然 -v /sys/fs/cgroup:/sys/fs/cgroup:ro 无法挂载怎么办? 抽象类和接口 Magento 2 中扩展属性(extension_attributes.xml)的用途是什么? win10底部菜单栏卡死解决 docker容器映射所有端口到宿主机 【frp】RDP软件远程Listener state: Not listening [not supported] 升级到magento2.4.3,后台加载很慢解决方法 微信支付https://api.mch.weixin.qq.com/pay/unifiedorder返回null magento grid增加编辑按钮 PHP循环引用 Broken reference: the 'sales_order_tbs ' elemert canmot be atded as child to ‘left , bvcause the lat ubuntu安装swoole后报错:undefined symbol:XXXX swoole pcre.h: No such file or directory magento2 The account sign-in was incorrect or your account is disabled temporarily. Please wait and 批量修改表前缀 magento2.3.7升级2.4.3 elasticsearch可视化工具 pwaStudio-Magento2.4.3 mysql忘记密码创建新用户设置 Docker容器下 mysql source 导入数据库 如何在 Docker 上安装 Magento 2 mysql:基于扫码记录查找密接人员 varnish:pc mobile分开缓存 The requested PHP extension ext-gd * is missing from your system. Install or enable PHP's gd extensi Ubuntu切换指定PHP版本 magento-varnish安装自述 Ubuntu彻底卸载varnish Varnish - Error 503 Backend fetch failed Scandipwa magento2安装教程(在已存在的magento安装) Navicat15最新版本破解 (Navicat Premium 注册出现 No All Pattern Found! File Already Patched) mac本地运行MySQL;Navicat Authentication plugin ‘caching_sha2_password‘ cannot be loaded: dlope问题 mac本地运行PHP项目问题记录 通过 Binlog 日志来恢复 MySQL 数据 composer file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: php Laravel统计所有API响应时长等信息 php计算累加的累加 composer PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 Go使用变量类型声明和方法的注意事项 方法 函数值 映射 切片的长度与容量 go基本类型(包、变量、函数、流程控制语句) 如何保证接口的幂等性 nginx 全部域名解析统一设置 mysql之存储过程(while循环、repeat循环、leave语句、loop循环、iterate语句) Laravel 契约和门面简单解读(Cache) Linux-centos安装node,node -v undefind Nginx 的反向代理、负载均衡、动静分离和高可用的原理 es6 set应用场景 vscode安装HTML Boilerplate解决不识别tpl后缀文件 laravel orm with如何指定select字段 laravel框架应用和composer扩展包开发 php实现斐波那契数列 内网穿透工具FRP搭建远程控制 微信小程序 动态添加view组件 唯物辩证法 nba2k游戏助手 更新日志 微信网页分享代码及提示签名错误解决方法 PHP支付宝支付兼容微信公众号 关于支付宝支付接口实际测试后的记录 网站后台权限管理 12306Bypass 分流软件 nba2kol2 12月份数据大更新,公众号球员更新名单进度贴 腾讯视频会员大放送 公众号新功能征集帖 我们知道CDN护航了双11十年,却不知道背后有那么多故事…… 企业微信第三方应用开发授权设置(PHP版) Linux下certpot 免费搭建https协议 CentOS7下Nginx强制http 301跳转到https的设置方法