使用FastClick的同时造成元素上的trigger('click')无法触发的解决办法

现象还原:

1. 初始化进入多规格卖场商详页的时候,chrome模拟器切换到安卓环境下,点击加入购物车,规格弹出页没有展示。而在PC和IOS模拟器下,可以弹出规格页

2. 点击加入购物车时,使用

$('.J_Spec').triggerHandler(click_name); 
//代替 
$('.J_Spec').trigger(click_name);

可以弹出规格页,但是颜色和尺寸点击没有自动触发

3. 我把

$('.J_Spec').trigger(click_name);

这行代码放在gettoken的最末端,规格页即可自动弹出

 

原因分析:

针对2:因为使用了triggerHandler会阻止冒泡,而且颜色和尺寸自动点击绑定在了父类,所以导致不会自动触发颜色和尺寸的点击

针对3:不明,但如果是通过元素点击来使用trigger('click')就是不行,不通过元素点击没问题

针对1:不明

 

解决方法:

1. 【官方推荐】:当DOM元素需要一个non-synthetic click(即非人工触发的点击trigger)的时候,最好在该DOM元素上加上class="needsclick "(原文:http://ftlabs.github.io/fastclick/)

2. 使用2次trigger,即

$('.J_Spec').trigger(click_name);
$('.J_Spec').trigger(click_name);

3. 在js代码中使用

 if ($.os.android) window._fastClick.destroy();

来屏蔽fastclick

转载于:https://www.cnblogs.com/linux-centos/p/4973974.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值