【问题标题】:Issue with trigger click on touch devices when targeting data element定位数据元素时触发点击触摸设备的问题
【发布时间】:2015-07-07 03:52:45
【问题描述】:

我试图在定位数据元素时通过 jQuery 触发点击。触发点击在桌面设备上工作得很好,但在触摸设备上却失败了。我在这里做了一些阅读:jquery touchstart in browser 并试图绑定一个 touchstart 事件,但它仍然无法正常工作,下面是我的代码,有和没有 touchstart 事件。

//basic implementation that works on non-touch devices
$('.mobile-link').click(function() {
      $("[data-slidr-breadcrumbs='platforms']").trigger('click');
});

//with touchstart
var clickEventType = ((document.ontouchstart!==null)?'click':'touchstart');

$('.mobile-link').click(function() {
    $([data-slidr-breadcrumbs='platforms']).trigger(clickEventType);
});

【问题讨论】:

  • 你调用的属性选择器是否正确??
  • 属性选择器似乎是正确的,因为它适用于非触摸设备。不过,我想知道触摸设备中的问题是否源于此?

标签: javascript jquery touchstart


【解决方案1】:

您想要单击或触摸启动事件,因此请使用 .on() 并将事件名称作为第一个参数传递

var clickEventType = ((document.ontouchstart !== null) ? 'click' : 'touchstart');

$('.mobile-link').on(clickEventType, function () {
    $("[data-slidr-breadcrumbs='platforms']").trigger('click');
});

【讨论】:

  • 不幸的是,这仍然没有奏效,点击功能会正确触发 - 例如,如果我添加一个警报,它会在点击时触发,但问题仍然存在,因为触发器点击没有触发数据属性元素。
猜你喜欢
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
相关资源
最近更新 更多