javascript - 防止 NavLink 中另一个元素的 NavLink 行为
问题描述
我什至不确定这是否是一个好问题。如果我没有任何意义,请道歉。
我对 NavLink 有以下结构:
<NavLink to="/path">
<div onClick={()=>{...function}} ></div>
</NavLink>
如果用户单击 NavLink 内的 div,如何防止 div 将用户定向到路径?我使用了 e.preventDefault() 并且它有效但不完全。div 也有输入,onChange 会触发 NavLink 行为吗?
谢谢
解决方案
通过调用点击处理程序event.stopPropagation()
,div
事件不会冒泡到链接。
使用原生 JavaScript 的 Demo 也适用于 React:
const [a, div] = ['a', 'div'].map(document.getElementById.bind(document));
div.addEventListener('click', e => e.stopPropagation());
a.addEventListener('click', () => console.log('doh')); // never happens
#div {
background-color: red;
width: 100px;
height: 100px;
}
<a id="a">
<div id="div"></div>
</a>
推荐阅读
- bash - 用于将文件列表从一个项目复制到另一个项目的 Shell/终端/bash 命令或脚本
- android - RecyclerView 没有填充,可能是一个愚蠢的适配器问题
- python - 导入请求不起作用 Python 3.7
- rust - 为 T 实现 From 特征,其中 T 实现 Display
- python - 如何找到包含多个单元格的列表的平均值?
- c++ - 单例:避免 GetIntance()
- ios - 找不到它有什么问题。错误域 = NSCocoaErrorDomain 代码 = 3840 “无值。” UserInfo={NSDebugDescription=无值。}
- python - 在具有匹配属性的 dict 数组中查找最小值,返回最大的分组
- python - AWS Lambda - S3 put_object 参数正文的类型无效
- python - 没有 .sorted 的第二大整数