Javascript 模拟tweet事件处理程序

Javascript 模拟tweet事件处理程序,javascript,reactjs,dom,event-handling,Javascript,Reactjs,Dom,Event Handling,我正在使用react,并希望模仿twitter推特上使用的EventHandler(以及许多其他我确信的东西) 如果某个元素的文本高亮显示并在鼠标向上移动时激发,则不执行任何操作,但如果仅单击该元素而未高亮显示任何文本,则激发事件。 这不是onClick、onMouseUp、onMouseDown或onMouseDownCapture的标准行为。我还尝试添加了onSelect={e=>e.preventDefault} 我可以测量鼠标按下的时间,如果超过x毫秒,则什么也不做,但我感觉有一个更简单

我正在使用react,并希望模仿twitter推特上使用的EventHandler(以及许多其他我确信的东西)

如果某个元素的文本高亮显示并在鼠标向上移动时激发,则不执行任何操作,但如果仅单击该元素而未高亮显示任何文本,则激发事件。 这不是onClick、onMouseUp、onMouseDown或onMouseDownCapture的标准行为。我还尝试添加了
onSelect={e=>e.preventDefault}

我可以测量鼠标按下的时间,如果超过x毫秒,则什么也不做,但我感觉有一个更简单(或更正确)的解决方案。有人知道吗

<div
 className='post'
 onClick={() => {
          if(text is highlighted){
            do nothing;
          }
          else{
               do something;
          } 
}>
{
如果(文本突出显示){
什么也不做;
}
否则{
做点什么;
} 
}>
可能会有帮助

选择对象表示用户选择的文本范围或插入符号的当前位置。要获取用于检查或操作的选择对象,请调用window.getSelection()


{
if(window.getSelection().toString()!=“sample”)
console.log(“做某事”);
else console.log(“什么也不做”);
}}
>
样品

请包含一个最小的可复制示例。我已经包含了一些伪代码,但实际上没有更多要显示的内容。谢谢Alex。这正是我需要的。以下是我的结论:
onClick={()=>window.getSelection().toString().length==0&&doSomething()}
就像一个符咒。
 <div
      className="post"
      onClick={() => {
        if (window.getSelection().toString() !== "sample")
          console.log("Do somthings");
        else console.log("Do nothing");
      }}
    >
      sample
  </div>