OnMouseLeave для Popover с параметром hiderBackdrop (материальный пользовательский интерфейс)

   <Popover
       key = {element.name}
       className = {classes.popover}
       classes = {{
         paper: classes.paper
       }}
       open = {open}
       anchorEl = {this.myRef.current}
       anchorOrigin = {{
         vertical: 'bottom',
         horizontal: 'left'
       }}
       transformOrigin = {{
         vertical: 'top',
         horizontal: 'left'
       }}
       disableRestoreFocus
       hideBackdrop
    >

У меня есть такое всплывающее окно, я хочу выполнить событие onMouseLeave, но оно не работает. Как я могу это решить? Это происходит потому, что я думаю, что из этого элемента нет другого html-элемента, и это причина того, что он не выполняет никаких действий. Может есть решение этой проблемы?

Вот ссылка на документ - https://material-ui.com/utils/popover/

что вы пытаетесь выполнить с помощью события onMouseLeave?

will92 03.03.2019 04:47
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
1 272
3

Ответы 3

Я не слишком уверен в том, что вы пытаетесь выполнить, но Popover Material-UI имеет функцию onExit, которая эквивалентна onMouseLeave.

Может быть, вы можете сделать что-то вроде этого,

     <Popover
       key = {element.name}
       className = {classes.popover}
       classes = {{
         paper: classes.paper
       }}
       open = {open}
       anchorEl = {this.myRef.current}
       anchorOrigin = {{
         vertical: 'bottom',
         horizontal: 'left'
       }}
       transformOrigin = {{
         vertical: 'top',
         horizontal: 'left'
       }}
       disableRestoreFocus
       hideBackdrop
       onExit = {() => {
         PLACE YOUR CODE HERE TO EXECUTE!!!!!
       }}
     >

Дайте мне знать, если это будет полезно.

да, я тоже пробовал, но я думаю, что это будет работать только в том случае, если фон не будет скрыт

Andrey Radkevich 03.03.2019 04:59

Попробуйте onMouseLeave для PaperProps = {{onMouseLeave: onClose}}

Все события публикуются здесь: reactjs.org/docs/handling-events.html это просто.

Michael Nelles 20.03.2020 00:43

Это сработало как шарм. Проблема с onMouseLeave с компонентом popover заключается в том, что он похож на модальный и имеет фон, который занимает весь экран, поэтому мышь никогда не уходит. Передача реквизита в PaperProps имеет смысл.

yoshinator 28.05.2021 23:50

У меня была такая же проблема, и их пример не помогает.

Вам нужно отключить события указателя:

<Popover
    style = {{ pointerEvents: 'none'}}
    disableRestoreFocus
    ...
>
...

Или, что еще лучше, использовать компонент Поппера, по-видимому.

Другие вопросы по теме