Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery捕获<;上的单击事件;李>;元素在iPad上不起作用_Javascript_Jquery_Css - Fatal编程技术网

Javascript 使用jquery捕获<;上的单击事件;李>;元素在iPad上不起作用

Javascript 使用jquery捕获<;上的单击事件;李>;元素在iPad上不起作用,javascript,jquery,css,Javascript,Jquery,Css,在本页上: 如果单击计算机上的任何编号块,将出现一个弹出窗口 如果您在iPad上单击它们,将显示悬停状态,然后再次单击将显示弹出窗口 我希望在第一次点击iPad时弹出窗口 奇怪的是,几乎完全相同的事情发生在这个网站的主页上,但在这种情况下,第一次点击打开弹出窗口没有问题: 我不明白他们为什么反应不同。在这两种情况下,悬停状态都由CSS处理: ul#home li:hover h2{height:160px;} ul.interior li:hover h2{display:block;}

在本页上:

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

如果您在iPad上单击它们,将显示悬停状态,然后再次单击将显示弹出窗口

我希望在第一次点击iPad时弹出窗口

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

我不明白他们为什么反应不同。在这两种情况下,悬停状态都由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事件呢?无论如何,由于某种原因,我的两个页面的功能不同


如有任何建议,我将不胜感激。谢谢大家!

iOS需要链接上的
href=“#”
参数

根据我的经验,这只是桌面和iPad web开发之间的区别之一。iPad正在监听触摸事件,但仍然可以处理点击事件(有些)。第一次触摸总是悬停,第二次是点击,当你在听点击的时候

您可以通过使用诸如代替jQuery或用于触摸事件的jQuery插件来监听触摸事件,而不是监听单击事件,从而绕过此问题

或者,如果愿意,可以使用手动设置触摸事件

我不知道为什么其中一个页面在第一次触摸时就可以工作,我从来没有用点击处理程序来完成这一点。

这是有道理的。我在脚本中添加了一个“touchend”事件,现在当您触摸元素时,两个屏幕都会显示出来。我仍然不明白为什么主页不需要这个,因为它们几乎是一样的。此外,如果我用手指触摸iPad在其中一个元素上拖动/滚动屏幕,则会触发“touchend”事件,无意中打开弹出窗口。