click事件无法触发解决方案

博客介绍了一种方法,使用jq解决相关问题,也可改成原生写法。主要解决了用touchstart替代点击事件时,滑动也触发的bug,还提及了click事件无法触发的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法: 这里使用了jq所以直接用了,大家可以改成原生写法

/**
 * 将touch事件改为点击事件
 * @param  {[string]}   dom      [css选择器]
 * @param  {[bool]}   derect      [方向 x为false,y方向为true]
 * @param  {Function} callback [要执行的函数]
 * @return {[underfined]}   [description]
 */
function pt_TouchToClick(dom,derect,callback){
    $("body").on('touchstart',dom,function(event){
       let x=0,x1=0,flag=0,atrsy=!derect?"pageX":"pageY",e = event || window.event;
       x=e.targetTouches[0][atrsy];
       $(this).on("touchend",function(event){
       let e = event || window.event;
       x1=e.changedTouches[0][atrsy],flag=x!=x1?0:1;
       })
       setTimeout(()=>{ flag && callback.call(this);})
    })
}

使用:

pt_TouchToClick(".pt_picture_box #head .right ul li",0,function(){
    //做一些事情
})

主要解决了touchstart替代点击事件,滑动也触发的bug

click事件无法触发解决方案:body *

$("body *").on('click', '.pt_picture_box #head .right ul li', function(event) {
        //处理
    });

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿轻丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值