登录  /  注册
博主信息
博文 175
粉丝 1
评论 0
访问量 377062
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
apicloud长按事件
dxp2tq的博客
原创
3462人浏览过

APICloud官方在1.1.60版本中添加了长按监听方法,但是真的仅仅是监听到了长按的操作,不能实时获取到长按的位置,长按的元素,所以用了之前找到的一个方法,使用JS代码获取值,使用longpress监听方法调用JS函数,代码贴下

首先要在页面加载时初始化监听和声明一个要用到的全局变量:

var Htmls  = "";

apiready = function() {

        api.addEventListener({

            name:'longpress'

        },function(ret,err){

            if(Htmls != "")

            {

                alert(Htmls);

                Htmls = "";

            }

        });

}


复制代码

接下来是获取值的代码(这里用HTML代码做示例):

var timeOutEvent = 0;

       //定时器

       //开始按

       function gtouchstart(obj) {

              Htmls = $(obj).html();

              timeOutEvent = setTimeout(function(){

                      alert("清除了");//因为页面弹动会导致元素一直处于按住的状态,所以超过700毫秒自动清空变量,避免点击其他元素触发事件

                      Htmls = "";

           }, 700);

           return false;

    };


    //手释放,取消长按事件

    function gtouchend() {

           clearTimeout(timeOutEvent);

           Htmls = "";

    };

    //如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按

    function gtouchmove() {

               clearTimeout(timeOutEvent);

               Htmls = "";

    };

复制代码

最后的元素事件代码:

ontouchstart="gtouchstart(this)" 

ontouchmove="gtouchmove()" 

ontouchend="gtouchend()"

复制代码


整体的源代码在这:

<!DOCTYPE html>

<html>

<head>

        <meta charset="utf-8">

    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>

    <title>title</title>

    <link rel="stylesheet" type="text/css" href="../css/api.css"/>

    <style>

            body{

                    

            }

    </style>

</head>

<body>

        <a ontouchstart="gtouchstart(this)" ontouchmove="gtouchmove()" ontouchend="gtouchend()">长按我(1)</a></br>

        <a ontouchstart="gtouchstart(this)" ontouchmove="gtouchmove()" ontouchend="gtouchend()">长按我(2)</a></br>

        <a ontouchstart="gtouchstart(this)" ontouchmove="gtouchmove()" ontouchend="gtouchend()">长按我(3)</a></br>

        <a ontouchstart="gtouchstart(this)" ontouchmove="gtouchmove()" ontouchend="gtouchend()">长按我(4)</a>

</body>

<script type="text/javascript" src="../script/api.js"></script>

<script type="text/javascript" src="../script/jquery-1.10.2.js"></script>

<script type="text/javascript">

        var Htmls  = "";

        apiready = function() {

        api.addEventListener({

            name:'longpress'

        },function(ret,err){

            if(Htmls != "")

            {

                alert(Htmls);

                Htmls = "";

            }

        });

        }

        

    var timeOutEvent = 0;

    //开始按

           function gtouchstart(obj) {

              Htmls = $(obj).html();

              timeOutEvent = setTimeout(function(){

                alert("清除了");//因为页面弹动会导致元素一直处于按住的状态,所以超过700毫秒自动清空变量,避免点击其他元素触发事件

            Htmls = "";

                   }, 700);

               return false;

    };


    //手释放,取消长按事件

    function gtouchend() {

               clearTimeout(timeOutEvent);

               Htmls = "";

    };

    //如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按

    function gtouchmove() {

               clearTimeout(timeOutEvent);

               Htmls = "";

    };

</script>

</html>

复制代码



本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学