$(“。element”)。first()。trigger('click') - 不工作的iPad

时间:2015-01-30 08:50:34

标签: javascript jquery ios lightbox image-gallery

我正在使用:

$(".first-image-gallery").first().trigger('click');

创建点击图片库的操作。

原因是我正在使用“开始图库”。按钮在页面的其他位置,并希望此按钮打开图库的第一个图像,然后用户可以随意前进和后退。

我正在使用iLightBox作为图库,无法找到它内置的任何内容,可以通过jQuery从另一个按钮或动作中打开图库。

我使用的当前代码在桌面上的其他地方工作正常,但移动iPad无法正常工作。

3 个答案:

答案 0 :(得分:3)

这是Mobile Safari的怪异。单击事件在没有设置cursor: pointer; CSS属性的任何元素上都无法正常工作。

了解详情:http://www.shdon.com/blog/2013/06/07/why-your-click-events-don-t-work-on-mobile-safari

  

这适用于每个符合标准的浏览器。然而,Mobile Safari选择不同。它不会为没有任何一个或两个的元素生成点击事件:

     

- 直接绑定onclick处理程序。

     

- 将光标属性设置为CSS中的指针。

因此,您的解决方案似乎是:

.first-image-gallery {
  cursor: pointer;
}

我(几乎)总是求助于包含cssua javascript库并包含这一点css,它在全局(页面范围)解决了这个问题,在Mobile Safari中的整个页面上应用了cursor: pointer;(但是不在其他浏览器中):

html.ua-safari.ua-ios {
  cursor: pointer;
}

答案 1 :(得分:1)

尝试使用touchstart:

$(".first-image-gallery").first().trigger('touchstart');

并在点击功能中使用此功能,就像.on('click touchstart',callback);

一样

答案 2 :(得分:0)

我有同样的问题,我尝试过设置游标:指向元素的指针,它不起作用。

很明显触发'touchstart'与jQuery的效果非常好,但问题是我需要以编程方式“点击”现有元素(按钮),所以我需要触发'click'。

最后我发现使用原生的javascript代码可以很好地工作,所以你可以尝试:

document.querySelectorAll('.first-image-gallery')[0].click();

至少它适用于我的情况。