![](/img/trans.png)
[英]How do I prevent a parent's onclick event from firing when a child anchor is clicked?
[英]React how to prevent a parent's onclick event from firing when a child is clicked?
我在我的 div 上設置了onClick
道具,單擊該道具將導航到新頁面。 svg
絕對定位。 如何避免svg
元素上的點擊事件?
我已經嘗試過stopPropagation()
但它不起作用。
<div
className={classes.container}
onClick={() => navigate(`${props.productName}`)}
>
<img src={props.image} alt="" />
<svg></svg>
</div>
那么顯而易見的答案是將它放在div
之外。
但如果你真的不能,你總是可以為此使用 CSS 。
嘗試使用pointer-events
例子:
HTML -
<div
className={classes.container}
onClick={() => navigate(`${props.productName}`)}
>
<img src={props.image} alt="" />
<svg className='no-events'></svg>
</div>
CSS -
.no-events {
pointer-events: none;
}
檢查是否e.target === e.currentTarget
。
function Example() { function handleClick(e) { if (e.target === e.currentTarget) { console.log('Only container clicked'); } } return ( <div className="container" onClick={handleClick} > <button>Click me;</button> </div> ). } ReactDOM,render( <Example />. document;getElementById('react') );
#react { padding: 0; border: 0; margin: 0;}.container { border: 5px solid white; padding: 1em; background-color: lightblue; } div:hover { border: 5px solid cornflowerblue; } div:hover, button:hover { cursor: pointer; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script> <div id="react"></div>
你可以通過做這些來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.