如何防止多次点击/点击的默认处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止多次点击/点击的默认处理?相关的知识,希望对你有一定的参考价值。

我正在研究一种用于音乐制作的简单Web工具。用户用鼠标反复点击区域或用手指轻敲(在触摸屏上),并且工具计算点击的平均速度(例如,160bpm)。在我的例子中,该区域是一个output html元素,但它也可能是任何其他元素。

由于点击或敲击可能非常频繁地发生,因此设备可以将其视为不是常规点击,而是双击或双击。在第一种情况下,区域的内容被选中,因为它是双击的默认结果;在第二种情况下,网页不是捕捉点击,而是缩放(例如在ios中)。

如何防止桌面和触摸屏的不良行为?一些重要的要求:

  1. 我寻找一个纯javascript和本机浏览器API的解决方案,没有jQuery或其他框架。
  2. 该解决方案应该仅防止在上述元素中进行额外点击。如果用户在此元素之外的网页上的其他位置执行多次点击(或多次点击),则应照常处理。
答案

要防止双击选择:

function clearSelection() {
    if(document.selection && document.selection.empty) {
        document.selection.empty();
    } else if(window.getSelection) {
        var sel = window.getSelection();
        sel.removeAllRanges();
    }
}

例如:Prevent text selection after double click

要防止缩放移动设备,请使用元标记:

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

注意:如果您使用响应式设计,这只是一个可行的解决方案

以上是关于如何防止多次点击/点击的默认处理?的主要内容,如果未能解决你的问题,请参考以下文章

Android如何防止快速点击造成多次事件

jquery ajax如何防止多次提交

如何防止多次快速点击 UITableView 的编辑按钮导致应用程序崩溃?

Android 如何判断多次点击

$.ajax防止多次点击重复提交的方法

Button--防止button多次点击