亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

由 onMouseOver 觸發的 Material-UI 彈出窗口阻止按鈕的 onClick 事件

由 onMouseOver 觸發的 Material-UI 彈出窗口阻止按鈕的 onClick 事件

浮云間 2023-08-18 16:41:54
這是 Header.js,其中有按鈕<ReactSvg>,<IconButton>當您單擊它時,它將使用該switchTheme()功能更改頁面主題。當您將鼠標懸停在按鈕上時,它還有一個popover聲明按鈕功能的位置(例如切換主題)。由于某種原因,我將鼠標懸停popover在出現的按鈕上,但即使我單擊得非常快且有力,也不讓我單擊該按鈕。不知何故,該popover按鈕已禁用。呈現按鈕的頭文件:import React, { useState } from 'react'import ReactSvg from './reactSvg'import { Box, Typography, Link, Container, IconButton } from '@material-ui/core'import PhoneIcon from '@material-ui/icons/Phone'import EmailIcon from '@material-ui/icons/Email'import GitHubIcon from '@material-ui/icons/GitHub'import LinkedInIcon from '@material-ui/icons/LinkedIn'import { useStyles } from '../styles/customStyles'import Image from 'material-ui-image'import PopOver from './PopOver'const styles = {  image: {    maxWidth: 200,    minWidth: 200,  },}export default function Header({ switchTheme }) {  const classes = useStyles()  const [anchorEl, setAnchorEl] = useState(null)  const handleTheme = () => {    switchTheme()  }  const handleHover = (e) => {    setAnchorEl(e.currentTarget)  }  return (    <>      <Box>        <IconButton onClick={() => handleTheme()} onMouseOver={(e) => handleHover(e)}>          <ReactSvg />        </IconButton>        <Typography variant="h3" color="primary">          Staz Christodoulakis        </Typography>        <Typography variant="body1" color="primary">          Software Engineer · Web/App        </Typography>        <hr className="solid" />        <Box          display="flex"          alignItems="center"          justifyContent="center"          className={classes.root}          flexWrap="wrap"        >          <Link color="secondary" variant="body1" href="tel: 650-409-6202">            <Box display="flex">              <PhoneIcon /> 650 409 6202            </Box>          </Link>為什么 onMouseOver 事件會阻塞 onClick 事件?
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

因此,我通過使用 Material UI 提供的工具提示找到了解決問題的方法。

像這樣:

<Tooltip title="Click Me!" placement="right" arrow>

? ? ? <IconButton

? ? ? ? onClick={() => handleTheme()}

? ? ? ? // onMouseOver={(e) => handleHover(e)}

? ? ? >

? ? ? ? <GetIcon icon={reactLogo} className="reactLogo" />

? ? ? </IconButton>

? ? </Tooltip>

如果有人設法在 Material UI 按鈕上使用不同的鼠標事件方法,請在此處發布。謝謝!


查看完整回答
反對 回復 2023-08-18
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

你能嘗試stopPropagation嗎?


  const handleHover = (e) => {

    e.stopPropagation();

    setAnchorEl(e.currentTarget)

  }


查看完整回答
反對 回復 2023-08-18
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號