zoukankan      html  css  js  c++  java
  • 使用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

  • 相关阅读:
    STL"源码"剖析
    Excel如何进行SVN
    BootstrapTable+KnockoutJS
    WebApi 集成 Swagger
    Java Core和HeapDump
    深入分析 Java 中的中文编码问题(1)
    Java编码浅析(注意区分三个概念)(转)
    理解并解决GBK转UTF-8奇数中文乱码(转)
    Java实现敏感词过滤(转)
    Android MediaPlayer状态机
  • 原文地址:https://www.cnblogs.com/linux-centos/p/4973974.html
Copyright © 2011-2022 走看看