jQuery触发点击事件在移动Safari(iPad)上的问题

7
我在iPad的Safari上发现了一个bug。
$('#next_proj a').trigger('click');

似乎不能点击实际链接。

有什么线索吗?

3个回答

6

我通过以下方法使其工作...

var el = $('#next_proj a').get(0);
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
el.dispatchEvent(evt);

希望这能有所帮助...


这实际上会触发点击事件,但它不能用于打开新窗口的锚点。有趣。我认为苹果在Safari的JavaScript引擎中添加了一种确定点击是否合法的方法。 - Adam Fowler

3
可能并不是一个bug。我猜测他们不想允许JavaScript模拟用户点击。

0
你尝试过触发触摸事件而不是点击事件吗?不确定如何在jquery中实现,但在普通的js中并不太复杂。
function simulateEvent() {
  var e = document.createEvent('HTMLEvents');
  e.initEvent('touchstart',true, true);
  document.dispatchEvent(e);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接