【问题标题】:Cancel an onclick event if I highlighted text如果我突出显示文本,请取消 onclick 事件
【发布时间】:2013-04-19 21:43:07
【问题描述】:

我有一个 div,当我点击它时,我想要一个动作发生。

那个 div 包含一些文本。

如果用户突出显示文本(例如,他们试图复制/粘贴,而不是实际单击它),那么我想取消 onclick 事件,这样如果他们不会发生该操作只是想突出显示,而不是实际点击。

有没有办法使用 JQuery 或普通的旧 Javascript 来做到这一点?

【问题讨论】:

  • 在onclick事件中,检查文本是否被选中。如果是这样,中止。 ???
  • 我想你会想在mouseup 之后检查是否选择了任何文本。
  • @ErikE 非常正确。我猜 OP 有“例如”,所以他们不是 only 指的是复制/粘贴
  • @PalashMondal jQuery JavaScript。这个问题是完全合法的,标签表明 vanilla JS 或 jQuery 是可以接受的。
  • 好吧,不清楚 OP 是否想要一个 jquery 解决方案,因为他专门说 javascript,反正这是次要的

标签: javascript jquery


【解决方案1】:

尝试检测 onmouseup 事件:

document.onmouseup = doSomethingWithSelectedText;

如果文本被突出显示,您将在 window.getSelection 中有一个值,使用它来确定您应该触发哪种事件。

看看这篇文章/小提琴:

Javascript: How to detect if a word is highlighted http://jsfiddle.net/timdown/SW54T/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多