使用jquery捕获<li>元素上无法在iPad上运行的点击事件</li>

时间:2014-02-03 00:04:51

标签: javascript jquery css

在此页面上: http://www.jwallacellc.com/fabric.htm

如果单击计算机上的任何编号块,则会出现一个弹出窗口。

如果在iPad上单击它们,则会出现悬停状态,然后再次单击会弹出窗口。

我希望弹出窗口出现在iPad上的第一次点击。

奇怪的是,几乎完全相同的事情发生在这个网站的主页上,但在这种情况下,第一次点击打开弹出窗口没有问题: http://www.jwallacellc.com

我不明白为什么他们的反应不同。在这两种情况下,悬停状态由CSS处理:

ul#home li:hover h2{height:160px;}
ul.interior li:hover h2{display:block;}

点击由jQuery / Javascript处理:

$('#home li').click(function(){…});
$('ul.interior li').click(function(){…});

我的选择器中是否存在一些差异导致iPad在我的内部页面上第一次没有捕获点击事件,而不是主页? iPad是否认为因为有悬停状态,它应该第一次出现?但是为什么Javascript会在这种情况下忽略click事件?无论如何,由于某种原因,我的两页功能不同。

非常感谢任何建议。谢谢!

2 个答案:

答案 0 :(得分:0)

iOS要求链接上的href="#"参数

答案 1 :(得分:0)

根据我的经验,这只是桌面和iPad网站开发之间的差异之一。 iPad正在侦听触摸事件,但仍可以处理点击事件(有些)。当您正在收听点击时,第一次触摸始终是悬停,第二次触摸是一次点击。

你可以通过使用Zepto.js而不是jQuery或触摸事件的jQuery插件来监听触摸事件来解决这个问题,而不是听点击事件。

或者如果您愿意,可以使用a tutorial like this.

手动设置触摸事件

我不确定为什么其中一个页面在第一次触摸时实际工作,我从来没有能够通过点击处理程序实现这一点。