【问题标题】:Capturing text selection event on mobile/touch devices在移动/触摸设备上捕获文本选择事件
【发布时间】:2012-01-25 12:16:15
【问题描述】:

对于我的 html 应用程序,我想在每次选择某些文本时执行一个操作。

现在我正在使用 mouseup 事件来捕捉文本选择,如下面的代码所示。但在移动设备上,这不起作用,因为在选择后不会触发 mouseup。我可以改用哪个事件?

$("#container-around-text").on('mouseup', function() {
  // check if selection is empty
  // then do something
});

【问题讨论】:

    标签: android html ios mobile dom-events


    【解决方案1】:

    您可以存储一个变量 selectedText 并每隔 100 毫秒运行一个间隔,以便检查当前选定的文本是否与 selectedText 变量中存储的相同。如果不同,请执行操作。

    【讨论】:

    • 嗯。轮询可能会起作用。但对我来说,这似乎很“骇人听闻”,因为我总是在执行可能会降低浏览器速度的代码。在这种情况下,我宁愿不使用轮询。
    【解决方案2】:

    您正在寻找touchstarttouchend,这些是mousedownmouseup 试图模仿的事件。
    将这些事件绑定到您的文本元素并触发您想要的功能,例如:

    elem.addEventListener("mouseup", selectableTextAreaMouseUp);
    function selectableTextAreaMouseUp(event){
        var selectedText = window.getSelection();
        // do what you want
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 2021-07-20
      相关资源
      最近更新 更多