帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
19
帖子
0
勋章
441
Y币

[BUG] tapmode 加 onclick有时候点击无效

[复制链接]
发表于 2017-3-15 12:53:38
我们公司的程序,客户老反应有时候点击一下无效,要点击第二下才行,我想应该是onclick事件有时候没有被触发,所以写了一个小程序测试onclick是否每次生效
<body>
        <div class="display-flex flex-direction-column" style="height:100%;">
        <div class="text1">click:0</div>
        <div class="text2 flex-1" tapmode></div>
    </div>
</body>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript">
        apiready = function(){
               
        };
        var count = 0;
        function itemclick() {
            count++;
            document.querySelector(".text1").innerHTML = "click:" + count;
        }
</script>

我在上面不固定位置乱点,结果发现不是每次onclick都起作用,不如说,我点击10下,只是触发了9次或者8次,但是如果用ontouchstart事件来实现,就没有问题,计数和我点击的次数完全一致,还有我用android原生也写了一个类似的测试程序,用onclicklistener计数,也是完全没有问题

tapmode是否用touch事件重新实现了onclick,如果是用touch实现,可能问题出在touchmove那里,只要touchmove了一点,就认为不是click事件,不再处理
2
帖子
0
勋章
2271
Y币
您好,是在Android上还是iOS上测试的?
21
帖子
4
勋章
1万+
Y币
用了tapmode 加onclick后,要用api.parseTapmode() 来加速的。。。
当新元素添加后,或者你后期加了onlick也要用api.parseTapmode() 一下。
21
帖子
4
勋章
1万+
Y币
另外你把点击事件用touchstart触发还是touchend触发呀?
touchstar不会因为touchmove不触发呀。
19
帖子
0
勋章
441
Y币
主函数 发表于 2017-3-15 15:45
另外你把点击事件用touchstart触发还是touchend触发呀?
touchstar不会因为touchmove不触发呀。 ...

touchstar是正常的,我是指apicloud的tapmode onclick=""有时候无法触发
19
帖子
0
勋章
441
Y币
cjapi 发表于 2017-3-15 15:23
您好,是在Android上还是iOS上测试的?

在android测试
21
帖子
4
勋章
1万+
Y币
simpleway 发表于 2017-3-15 17:46
touchstar是正常的,我是指apicloud的tapmode onclick=""有时候无法触发

可能不是无法触发,只是因为自带的延迟,感觉像是点了没有反应。。。
20
帖子
1
勋章
7581
Y币
本帖最后由 常山赵子云 于 2017-3-15 21:18 编辑

html中的onclick事件是有模态机制的,在onclick对应的函数执行未冒泡完毕前,整个dom不会响应下一个onclick事件。
onclick是由touch事件触发的,touch事件在onclick之前,从start到end之间满足触发onclick的条件就会触发onclick,这是浏览器引擎的默认机制,tapmode缩短了start到end的时间,但不会去干扰onclick,onclick要lock多久完全由执行操作决定。另外如果move幅度过大,就不会触发click事件。
124
帖子
0
勋章
2476
Y币
tapmode=“”的实质加了一些特殊的属性,你用vue,可以直接复制这些属性
14
帖子
0
勋章
75
Y币
主函数 发表于 2017-3-15 15:43
用了tapmode 加onclick后,要用api.parseTapmode() 来加速的。。。
当新元素添加后,或者你后期加了onlick ...

用api.parseTapmode()  也还是有这种情况出现,求解决办法,谢谢!
12下一页
您需要登录后才可以回帖 登录

本版积分规则