近日,有个拼图小活动,引用了zepto,以及zepto的touch模块。

在拼图结束之后,进行抽奖的活动,该抽奖结果是以弹框展示。

这里的关闭按钮需要添加点击事件:

    $(document.body).on("click", ".modal i", function () {
$(".overlay").css("opacity", 0);
$(".modal").css("opacity", 0).one("webkitTransitionEnd", function () {
$(this).add(".overlay").hide();
});
});

  事件其实很简单,就是点击关闭按钮,遮罩和弹框度关闭。

  使用浏览器模拟,完全正常,效果不存在任何问题。

  但是当使用真机测试的时候,安卓也是没有问题的,iPhone点击无效,依据经验查找问题:

    这里的关闭按钮,不是a标签,所以需要添加属性 cursor:pointer;  -- 查看css样式表,该样式已经添加这一属性。

  这是第一反应,除此之外,确实没有什么原因可以导致ios点击失效,安卓却有效的。

  反复查找代码上可能存在的bug,并翻看zepto的api,最终还是突发奇想,既然click不行,那么就换一个事件呢?换成tap或者touchend?

  结果替换成tap就搞定。不知道什么原因。

  总结一下现象:当完成拼图之后,即使用了zepto当中的swipe事件之后,页面当中所有的click事件在ios端失效。如果不进行swipe事件,click事件正常。

  结论:在移动端使用zepto并且引用其touch模块的话,就使用tap事件代替原本的click事件。

  

    $(document.body).on("tap", ".modal i", function () {
$(".overlay").css("opacity", 0);
$(".modal").css("opacity", 0).one("webkitTransitionEnd", function () {
$(this).add(".overlay").hide();
});
});

  

  

  

zepto引用touch模块后,click失效的更多相关文章

  1. zepto的touch模块解决click延迟300ms问题以及点透问题的详解

    大家都知道移动端的click事件会延迟300ms触发,这时大家可以使用zepto的touch模块,里面定义了一个tap事件,通过绑定tap事件,可以实现点击立即触发的功能. 那么,它的tap事件是怎么 ...

  2. Zepto.js touch模块深入分析

    目的:记录 Zepto.js touch模块 源码阅读 源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely ...

  3. Zepto.js touch模块深入分析 解决手机点击事件

    源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT li ...

  4. 移动端的silder,未封装,基于zepto的touch模块,有参照修改过touch的bug

    <!--html模块--> <header class="appoin-head"> <ul> <li class="aa&qu ...

  5. 读Zepto源码之Touch模块

    大家都知道,因为历史原因,移动端上的点击事件会有 300ms 左右的延迟,Zepto 的 touch 模块解决的就是移动端点击延迟的问题,同时也提供了滑动的 swipe 事件. 读 Zepto 源码系 ...

  6. 移动端touch模块

    在自己写touch事件时,总是会出现各种各样的bug,正好发现zepto的touch模块,很好用,而且由于zepto和jquery语法的相似性,这个模块也可以直接引用到jquery中, 得花时间好好消 ...

  7. Zepto.js touch,tap增加 touch模块深入分析

    1. touch库实现了什么和引入背景 click事件在移动端上会有 300ms 的延迟,同时因为需要 长按 , 双触击 等富交互,所以我们通常都会引入类似 zepto 这样的库.zepto 中tou ...

  8. Zepto.js库touch模块代码解析

    Zepto.js也许并不陌生,专门针对移动端开发,Zepto有一些基本的触摸事件可以用来做触摸屏交互(tap事件.swipe事件),Zepto是不支持IE浏览器的. 下面来解析一些Zepto.js触摸 ...

  9. zepto.js的touch模块

     touch库实现了什么和引入背景 touch模块是基于zepto.js的. click事件在移动端上会有 300ms 的延迟,同时因为需要 长按 , 双触击 等富交互,所以我们通常都会引入类似 ze ...

随机推荐

  1. deque/defaultdict/orderedict/collections.namedtuple()/collections.ChainMap() 笔记

    关于deque的使用 collections.deque([list[, max_length]]) # 不限定长度,可随意添加没有上限 >>> from collections i ...

  2. Win10+Ubuntu1604双系统

    原本电脑有一块固态硬盘和机械硬盘,用来跑win10的,现在想直接在ubuntu上跑tensorflow,所以加了块320G的机械硬盘单独跑ubuntu. 一.准备 1.ubuntu-16.04.3-d ...

  3. 串口转以太客户端(增加uci、可连接多个服务器)

    1. 进入barrier_breaker/package/utils文件夹,新建ttl_client 2. 该目录下的Makefile # # Copyright (C) OpenWrt.org # ...

  4. 【java】浅谈while 和do-while

    while语法格式:while(布尔表达式){//语句}先判断布尔表达式,如果为true就会执行循环体中的语句,然后再判断布尔表达式,一直到布尔表达式为false,然后循环结束.通常用算术运算符(++ ...

  5. DynArrayToVariant DynArrayFromVariant复制动态数

    type intArr=array of Integer; procedure TfrmMainDA.Button2Click(Sender: TObject);var aa:intArr;bb:in ...

  6. CentOS 6 上安装 pip、setuptools

    通常 python 升级后,会带来一系列的出错信息,例如缺少pip.zlib.setuptools等,虽然你已经把python升级到了2.7版本,但是使用的依赖.模块还是旧的,所以要在新的 pytho ...

  7. 基于C#的PISDK研究(代码)

    本篇文章主要利用PISDK从PI服务器取数,介绍多种取数方法. 首先需要一些基础的代码,比如获取PI服务的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...

  8. 注册表项关于start参数的说明

    start = {0,1,2,3,4}0 == 由核心装载器装载1 == 由I/O子系统装载2 == 自动启动3 == 手工启动4 == 禁止启动

  9. mysql 高可用架构

    什么是高可用 不可用出现的情况 如何实现高可用 第一种方法 第二种方法 MMM 和 MHA MHA更好的处理方式 安装步骤 优缺点 读写分离

  10. 运行startup.bat的启动过程

    一.前言 一般启动tomcat都是找到bin目录下的startup.bat(windows)下或者startup.sh(linux下),所以要研究tomcat的启动,startup脚本是避不开的.那么 ...