gpt4 book ai didi

javascript - 右键菜单触发其父菜单项的单击事件

转载 作者:行者123 更新时间:2023-12-03 00:50:30 25 4
gpt4 key购买 nike

我正在尝试将右键菜单添加到菜单项。我想我成功了,但是在单击右键菜单中的某个项目后,菜单项的单击操作也会触发。任何想法?示例:https://codesandbox.io/s/q8nl4ypq49

编辑:我的 react 组件代码

import React from "react";
import ReactDOM from "react-dom";
import Popup from "./Popup";
import Table from "antd/lib/table";
import Dropdown from "antd/lib/dropdown";
import Menu from "antd/lib/menu";
import { columns, data } from "./data";
import "antd/dist/antd.css";

const menu = (
<Menu>
<Menu.Item
onClick={e => {
alert("clicked");
}}
>
click
</Menu.Item>
<Menu.Item>Like it</Menu.Item>
<Menu.Item>Bookmark</Menu.Item>
</Menu>
);

class App extends React.Component {
render() {
return (
<div>
<Menu mode="horizontal">
<Menu.Item
key="1"
onClick={() => {
alert("parent clicked");
}}
>
<Dropdown overlay={menu} trigger={[`contextMenu`]}>
<span style={{ userSelect: "none" }}> right click </span>
</Dropdown>
</Menu.Item>
</Menu>
</div>
);
}
}

const APP_NODE = document.getElementById(`container`);
ReactDOM.render(<App />, APP_NODE);

最佳答案

您需要停止在子元素上传播,因为在 JavaScript 中,单击事件会在 DOM 树中冒泡。

const menu = (
<Menu>
<Menu.Item
onClick={e => {
e.domEvent.stopPropagation();
alert("clicked");
}}
click
</Menu.Item>
<Menu.Item >Like it</Menu.Item>
<Menu.Item>Bookmark</Menu.Item>
</Menu>
);

关于javascript - 右键菜单触发其父菜单项的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53065501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com