Мими c Твиттер EventHandler - PullRequest
       0

Мими c Твиттер EventHandler

1 голос
/ 27 января 2020

Я использую реагирую и хочу имитировать c EventHandler, который используется в твиттере твиттера (и во многих других вещах, я уверен).

Если текст элемента выделен и при нажатии мыши вверх, ничего не делать, но если по нему щелкнуть мышью, а текст не выделен, запустить событие.

Это не стандартное поведение onClick, onMouseUp, onMouseDown, or onMouseDownCapture. Я также попытался добавить onSelect={e => e.preventDefault}.

Я мог бы измерить количество времени, в течение которого мышь не работает, и если она превышает x миллисекунд, ничего не делать, но у меня есть ощущение, что есть еще более простое (или более правильное) решение этой проблемы. Кто-нибудь знает?

<div
 className='post'
 onClick={() => {
          if(text is highlighted){
            do nothing;
          }
          else{
               do something;
          } 
}>

1 Ответ

1 голос
/ 27 января 2020

Может быть полезным

Объект Selection представляет диапазон текста, выбранный пользователем, или текущую позицию каретки. Чтобы получить объект Selection для проверки или манипуляции, вызовите window.getSelection (). more


 <div
      className="post"
      onClick={() => {
        if (window.getSelection().toString() !== "sample")
          console.log("Do somthings");
        else console.log("Do nothing");
      }}
    >
      sample
  </div>
...