MUI框架div模拟按钮(日期选择器)导致双击才能弹出选择框,移动端Web不支持dblclick双击的问题。

一些前任项目遗留的问题,mui坑太多,不知道为什么要用div模拟日期选择的button按钮,导致使用时点击2次才能弹出日期选择框,但是他之前的项目都没问题,可以单击弹出,浪费了我大量时间排查原因。


★ 解决方案1:单击tap绑定双击想法,结果:无法实现

∵因为有这个tap绑定恢复click的办法

mui("#refreshContainer").on('tap', '.ulDiv', function (event) {
this.click();
});

$('.ulDiv').click(function(){
    alert(1);
	})

∴就想尝试用tap模拟双击dblclick

mui("#refreshContainer").on('tap', '.ulDiv', function (event) {
this.dblclick();
});
结果:无效
原因是对于移动端来说:
  • 双击(dblclick功能)这种交互原生不支持;

  • Android有实现双击缩放查看图片的仿微信照片查看器如PhotoView,IOS暂未发现;

★ 引申问题:怎么才能在移动端实现双击绑定事件:

除了安卓微信里可响应双击,安卓浏览器/IOS均不响应。

♦ 使用hammer.js来实现双击,安卓和IOS微信和浏览器里均可以响应;

存在的不足:

1.IOS浏览器里,双击放大图片,当图片大于屏幕宽度时,其网页大小也会有所影响,但微信里不会,由于这些功能只是在微信里使用,此问题不管;
2.有时反应不灵敏。当多次连续操作后,有时会不反应,继续操作才响应

可以调用微信JS-SDK来实现图片的预览.

 可试方法1(vue.js):

v-on:dblclick.native="zoomImage()" 

 可试方法2:

var lastClickTime = 0;
        var clickTimer;
        document.getElementById('xxx').addEventListener('click', (event) => {
            var nowTime = new Date().getTime();
            if (nowTime - lastClickTime < 400) {
                /*双击*/
                lastClickTime = 0;
                clickTimer && clearTimeout(clickTimer);
                alert('双击');
                
            } else {
                /*单击*/
                lastClickTime = nowTime;
                clickTimer = setTimeout(() => {
                    alert('单击');
                }, 400);
            }
        });

★ 最后的解决方法:加载2次mui.js

把前任的正常(乱七八糟)的网页一点点删除,找影响因素,他的网页所有的加载都加载了2遍……我怀疑他本人也不知道是什么原因导致的正常……最后发现删除了一个mui.js他的网页出现了和我一样的问题,原因是加载2遍mui.js,函数会执行2次(网上来源)

然后才尝试了dblclick绑定,失败,只好用了同样的方法加载2遍mui.js

副作用:似乎没有


备用:mui的坑

https://www.jianshu.com/p/b7718ccba82c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值