zoukankan      html  css  js  c++  java
  • webview长按事件js监听

    做app开发时,用到了webview,需要监听webview的长按事件,使用原生的js处理监听如下:

    var timeOutEvent = 0; //定时器 
        //开始按 
        function gtouchstart() {
            timeOutEvent = setTimeout("longPress()", 500); //这里设置定时器,定义长按500毫秒触发长按事件,时间可以自己改,个人感觉500毫秒非常合适 
            return false;
        };
        //手释放,如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件 
        function gtouchend() {
            clearTimeout(timeOutEvent); //清除定时器 
            if (timeOutEvent != 0) {
                //这里写要执行的内容(尤如onclick事件) 
                //alert("你这是点击,不是长按");
            }
            return false;
        };
        //如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按 
        function gtouchmove() {
            clearTimeout(timeOutEvent); //清除定时器 
            timeOutEvent = 0;
        };
    
        //真正长按后应该执行的内容 
        function longPress() {
            timeOutEvent = 0;
            //执行长按要执行的内容,如弹出菜单 
            //alert("长按事件触发");
            do_Page.fire("showTool",{"index":index,"url":images[index].source});
        }

    这里设置500ms点击为长按处理,主要用到了3个事件:

    ontouchstart、ontouchmove、ontouchend,主要思路:

    在ontouchstart事件中启动一个定时器,定时器间隔时间为500ms,即500ms后自动执行longPress逻辑,并清除定时器事件,ontouchend表示tap弹起,这时直接清除定时器,ontouchmove表示手指滑动,直接清除定时器即可,这样就简单实现了长按事件监听处理。

  • 相关阅读:
    解决junit @RunWith无法使用的问题
    git .gitignore 有时不起作用的问题
    Docker常用命令 InsaneLoafer
    NOI2021 退役记
    2021“MINIEYE杯”中国大学生算法设计超级联赛 第二场 题解
    2021“MINIEYE杯”中国大学生算法设计超级联赛 第一场 题解
    数位DP
    Windows下Jmeter安装配置
    Linux安装docker-compose
    Ubuntu卸载MySQL
  • 原文地址:https://www.cnblogs.com/vipzhou/p/6008181.html
Copyright © 2011-2022 走看看