一、点击失效

描述:将点击事件(click)委派在document或者body上,且目标元素为默认不可点击的元素时(非<a>、 <button>而是<span>等),点击失效。

实例代码:

<body>
<div class="page-content">
<ol class="scence-hot">
<li data-id="1-1" data-type="1" data-event="J_storeHotBtn"></li>
</ol>
</div>
</body>

// 点击事件按钮
$('body').on('click', '[data-event]', function(e) {
  var arr = $(this).data('event').match(/J_(\w+)Btn/);
  var selector = arr[1];

  switch (selector) {
    case 'storeHot':
      $targetElem = $targetElem.parent('li').length ? $targetElem.parent('li') : $targetElem;
      var type = $targetElem.data('type');
      var id = $targetElem.data('id');
      switch (type) {
        case 1:
          self._createDialog('hot-store', '', id);
          break;
        case 2:
          self._createDialog('hot-hb', '', id);
          break;
        case 3:
          self._createDialog('hot-hb-simple', '', id);
          break;
      }

    break;

  }

});

解决办法有五种:

1、取消事件委派,将事件直接绑定在目标元素本身上;

2、将目标元素更换成默认可点击的元素,如<a>、<button>;

3、将事件委派在非document或body上;

4、将目标元素增加样式cursor:pointer;

5、将click事件换成touch事件。

方案3为最佳方案,其他三种的代价相对较大。方案1,不便于代码的管理、性能等;方案2,区块的点击无法实现(语义等方面考虑);方案4,影响展现,会改变原有的交互体验。方案3几乎没有以上几点缺点。

二、点击闪屏

   ios下闪屏问题,由事件委派引发,解决方案如下:    

    1、去除事件委派;

    2、给委派的元素加上属性

      -webkit-tap-highlight-color: rgba(0,0,0,0);

      -webkit-user-select: none;

  方案2为最佳方案。

ios 点击失效、闪屏问题解决方案的更多相关文章

  1. Ubuntu14.04 Y460闪屏问题解决方案

    我的笔记本是联想Y460,安装了Ubuntu之后发现屏幕闪烁移位,而且在使用IDE的时候出现无法输入中文等问题,其实是显卡驱动的问题,N卡官网给的驱动不好用,尝试使用大黄蜂 参考:https://wi ...

  2. popupWindow使用timePicker时点击出现闪屏问题的解决办法

    记录一下刚解决的新鲜bug,噔噔噔噔: 首先说明,我并不知道到底是什么原理导致和解决的问题 总之就是,我在使用popupWindow时的弹出方法使用的是popupWindow.showAsDropDo ...

  3. mfc static控件 视频播放 闪屏问题 解决方案

    方案1: 我昨天刚在csdn上解决了这个问题,不是双缓冲和WS_CLIPCHILDREN还有背景擦出什么的问题,就是在你重画的时候要去掉这些控件(按钮什么的)区域, 闪屏是因为窗口大小发生改变时,由于 ...

  4. MFC框架下Opengl窗口闪屏问题解决方案

    转自https://blog.csdn.net/niusiqiang/article/details/43116153 虽然启用了双缓冲,但是仍然会出闪屏的情况,这是由于OpenGL自己有刷新背景的函 ...

  5. ios点击输入框,界面放大解决方案

    当我们编写的input宽度没有占满屏幕宽度,而且又没有申明meta,就会出现点击输入框,界面放大这个问题. 下面我直接给出解决方案: <meta name="viewport" ...

  6. iOS 点击按钮截屏

    @interface CaptureViewController () @property (nonatomic, strong) UIImageView *backgrounView; //控制器背 ...

  7. 解决uni-file-picker组件在ios点击失效的问题

    从组件源码里找到choose-and-upload-file.js文件,查找chooseAndUploadFile方法,在方法里添加下面代码,保存即可解决. opts.sourceType = ['a ...

  8. 移动端ios中click点击失效

    原因: Safari应该有某种机制用来节约资源,就是如果元素摸起来不像可以点的,就不给他响应事件. 所以,需要在点击的元素上加上{cursor:pointer},就解决了.当然还有别的方法,检点来说就 ...

  9. IOS客户端UIwebview下web页面闪屏问题

    基于ios客户端uiwebview下的web页面,在其内容高度大于视窗高度时,如果点击超过视窗下文档的底部按钮,收缩内容高度,会发生闪屏问题. 外因是由文档的高度大于视窗的高度所致,本质原因未知. 解 ...

随机推荐

  1. Jenkins Pipeline+sonar构建质量平台

    前提: Jenkins JDK 目录: 1.安装sonar插件:SonarQube Scanner for Jenkins 2.安装SonarQube 3.安装sonar-scanner ++++++ ...

  2. easyui - using

    using 是 easyloader.load 简写                  using('calendar', function()  { alert("加载calendar成功 ...

  3. ADO.NET操作SQL Server:数据库操作类(未封装)

    1.添加数据 /// <summary> /// 添加数据 /// </summary> /// <param name="newEntity"> ...

  4. cesium编程中级(二)源码编译

    cesium编程中级(二)源码编译 有些情况下,比如我们自己从Github下载了最新的代码,或者自己临时修改了一点代码,想要编译后的Build文件夹的内容,需要自行编译源码,这里介绍一下编译的方法 下 ...

  5. sharepoint 2013 升级要求

    1. 安装过程合理: A. 可以同时在管理中心.两台前端.搜索服务器上安装重新发布的SP1补丁包(所提供的链接) B. 等待所有SP1补丁包安装完成,依次在管理中心.两台前端.搜索服务器上运行配置向导 ...

  6. PostMan工具使用之基础篇

    PostMan工具使用之基础篇 一.什么是PostMan Postman一款非常流行的API调试工具.(其他测试工具 Jmeter.soapUI) 二.下载及安装: 1.下载: 下载地址:https: ...

  7. 重装SQL前,一定要把SQL2005、SQL2008之类的彻底删除干净

    0.预备 如果你曾删除过VS2010或者VS2008之类的,同理也要照此方法删除 1.步骤,顺序无妨 卸载程序:控制面板---查找SQL..NET   删除干净 停掉SQL的所有服务:  计算机--管 ...

  8. CF553C Love Triangles

    题目链接 题意:给定n个点,给出一些边权为0/1的边,构造完全图,满足对于任何一个三元环,三条边权和为奇.求符合条件的完全图数量,对\(1e9+7\)取模. 分析:其实原题给定的边权是love/hat ...

  9. parseInt/类型转换/字符串

    1.pa'rseInt整型 1.1parseInt必须以数字开头的 var topVal = parseInt("28px"); console.log(topVal); 1.2非 ...

  10. 【文文殿下】[BZOJ3277] 串

    Description 字符串是oi界常考的问题.现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中 至少k个字符串的子串(注意包括本身) Input 第一行两个整数n,k ...