繁体   English   中英

$(“。element”)。first()。trigger('click')-无法使用iPad

[英]$(“.element”).first().trigger('click') - not working iPad

我在用:

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

创建单击图库的操作。

原因是我在页面其他位置使用“开始画廊”按钮,希望该按钮打开画廊的第一张图片,然后用户可以根据需要前后移动。

我正在为画廊使用iLightBox,无法找到它内置的任何内容通过jQuery通过另一个按钮或操作来打开画廊。

我正在使用的当前代码在台式机上的其他地方都可以正常工作,但在移动iPad上无法正常工作。

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

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

这适用于所有符合标准的浏览器。 但是,移动Safari选择不同。 它不会为没有以下一项或两项的元素生成点击事件:

-直接绑定onclick处理程序。

-cursor属性设置为CSS中的指针。

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

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

我(几乎)总是求助于包括cssua javascript库并包含这部分css,从而通过使用cursor: pointer;来全局(整个页面)解决此问题cursor: pointer; 在Mobile Safari的整个页面上(但在其他浏览器中则没有):

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

尝试使用touchstart:

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

并在.on('click touchstart',callback);也使用此功能.on('click touchstart',callback);

我有同样的问题,我尝试将cursor:pointer设置为元素,它不起作用。

很明显,触发“ touchstart”与jQuery配合得很好,但问题是我需要以编程方式“单击”现有元素(按钮),因此需要触发“单击”。

最后,我发现使用本机javascript代码非常有效,因此您可以尝试:

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

至少对于我的情况,它可以立即生效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM