[英]How can I prevent href from firing using React onClick?
嘗試使用href
制作鏈接元素( <a>
元素)。 為什么我使用href
而不是更改history
? 因為我想要在瀏覽器的新標簽頁中打開的選項。
問題是,我在元素中有一個按鈕,當你點擊它時,它會立即觸發href
,甚至在按鈕的onClick
處理程序中停止stopProppagation
或preventDefault
之前。 這就像 2 種不同的事件類型……
像這樣:
...
const onButtonClick = (event) => {
event.stopPropagation();
event.nativeEvent.stopImmediatePropagation();
event.preventDefault();
if (clickDisabled) return;
if (!onClick) return;
onClick(event);
}
return (
<a href={someHref}>
<button onClick={onButtonClick}>open menu</button>
</a>
)
有任何想法嗎?
我最終使用的解決方法是:而不是按鈕onClick
- 我使用了onMouseDown
,它發生在href
觸發器之前。 不是最好的解決方案,但對我來說已經足夠了。
const onButtonClick = (event) => {
event.stopPropagation();
event.nativeEvent.stopImmediatePropagation();
if (clickDisabled) return;
if (!onClick) return;
onClick(event);
}
const handleLink = (e) => {
e.preventDefault();
window.open('https://URL...', '_blank');
}
return (
<a href={someHref} onClick={handleLink}>
<button onClick={onButtonClick}>open menu</button>
</a>
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.