【问题标题】:Event only triggers when I click in the same tag事件仅在我点击同一个标签时触发
【发布时间】:2018-08-15 15:03:56
【问题描述】:

在元素中,我有一些文本,当突出显示文本并检索选择时,会像菜单一样发生事件。

当我点击其他一些文本时,菜单消失,但如果我点击没有文本的元素之外,菜单仍然存在。

我意识到文本也会改变光标,我想知道如何做到这一点,以便当用户点击远离突出显示的文本时,菜单也会消失,而不仅仅是在突出显示或点击新文本时。

$('element').on('mouseup', function (e) {
  var sel = window.getSelection();
  var range = sel.getRangeAt(0);
  if (sel != '') {
    //event happens when text is selected
  } else {
    //event should go away
  }
});

回答

$(document).on('mouseup', function (e) {
  var sel = window.getSelection();
  var range = sel.getRangeAt(0);
  if (sel != '') {
    //event happens when text is selected
  } else {
    //event should go away
  }
});

我只是将事件更改为在页面的最外层元素上发生。

【问题讨论】:

  • 正如 sMilEy 建议的那样,您应该添加一个事件以在元素失去焦点时触发。 developer.mozilla.org/en-US/docs/Web/Events/mouseout 应该可以工作
  • 如果您解决了问题,请包含您的新代码,以便以后发现此问题的人可以看到修复。

标签: javascript html css


【解决方案1】:

您需要有一个新事件来监视鼠标是否离开。您当前的代码仅监视元素是否已被选中,因此是您想要做的一半。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多