jQuery的click事件点击跳转失败-解决方案

click点击失效

// HTML代码:
<div class="report-item-block review-report" data-id="7179" data-tid="33761934">
    <div class="item-block-profile">
      <div class="profile-img">
        
          ![](/avatar.png)
        
      </div>
      <div class="profile-name">大文文啊</div>
    </div>
    <div class="item-block-content">
      <p>昨天下午快递小哥送来的,申通快递,挺高兴的,<昨天下午快递小哥送来的,申通快递,挺高兴的,昨天下午快递小哥送来的,申通快递,挺高兴的,昨天下午快递小哥送来的,申通快递,挺高兴的,昨天下午快递小哥送来的,申通快递,挺高兴的,昨天下午快递小哥送来的,申通快递,挺高兴的。/p>
    </div>
    <div class="item-block-time">2016-12-06</div>
  </div>

// js代码:
function onReviewReport(e) {
  // e.preventDefault();
  var $target = $(e.currentTarget);
  var tid = $target.data('tid');
  var id = $target.data('id');

  if (tid && tid != '0') {
    jsbridge.openTopic(tid);
  } else {
    Turbolinks.visit('/lists-review-report?id=' + id + '&' + window.moduleMeta.qs);
  }
}

$('body').on('click', '.review-report', onReviewReport);

解决方案(以下验证都是可行的):

1.直接把click事件绑定在触发对象上

$('.review-report').on('click', onReviewReport);

2.改click事件为touch事件

touch事件过程:
    touchstart -> touchend:触发某些事件函数
    touchstart -> touchmove -> touchend:不触发某些事件函数

var ismove = false;
$('body')
    .on('touchmove', '.review-report', () => {
      ismove = true;
    })
    .on('touchstart', '.review-report', () => {
      ismove = false;
    })
    .on('touchend', '.review-report', (e) => {
      if (!ismove) {
        onReviewReport(e);
      }
    });

3.改目标对象为cursor: pointer;

因为click的事件是绑定在div上,在IOS上会有失效的情况,但是在Android和各种模拟器中一切正常。

在网上找到一个说法:

“后来经过查找资料才知道,苹果有这么个设置: 
对于点击的对象,拥有cursor:pointer这个样式的设置,也就是说,鼠标放上去,能够出现“手”型的图标才被认作可以使用点击事件,于是果断增加了样式cursor: pointer;”

参考链接:http://blog.csdn.net/yuexiage1/article/details/51612496

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 4,906评论 0 1
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 10,964评论 0 106
  • 在分享美食製作步驟之前,我們不如先來認識一下這朵藍紫色的嬌美小姑娘 (心急看美食的可以直接拉到最後)~她既沒有香草...
    一隅艺术工作室阅读 2,338评论 1 2
  • 这是日本绘本大师安野光雅唯一的人生随笔,他用看似笨拙、幼稚的方法,生动描绘了他对绘画的喜爱、对梦想的坚持和对人生的...
    流年2016阅读 4,075评论 0 0