jQuery的点击事件不能在iOS中工作

第二次更新:看起来像我的一个函数(resetFigures)阻止事件处理程序,所以将其移动到绑定函数的结尾进行sorting。

更新:我经过一些基本的testing后意识到点击事件正在注册,只是在点击时框没有翻转。

我有我的网站在Chrome和Firefox中工作的基本审美function,但它拒绝在iOS上正常运行(在iPhone 4上使用iOS 6.1和使用iOS 4.3.5的iPad上进行testing)。

您可以在这里查看网站,当然还有脚本(main.js): http ://bos.rggwebdesigns.com/

我读过iOS没有正确处理jQuery点击事件,但我正在努力找出一个修复。 Stack Overflow上的一些线程提到了live()方法,但像下面这样实现它(以及向可点击元素添加onclick="" )似乎并不奏效:

 $('.card').live('click touchstart', function() { var figure = $(this).children('.back'); var button = figure.find('.button'); var column = $(this).parents().eq(1); $('.column').removeAttr('style'); column.css('z-index', 2000); resetFigures(); if(flipCard(this)){ swoosh.pause(); swoosh.currentTime = 0; swoosh.play(); } }); 

我也遇到了这个有趣的解决scheme项目: http : //aanandprasad.com/articles/jquery-tappable/ 。 但是,我也没有这样的运气:

 $('.card').tappable(function() { var figure = $(this).children('.back'); var button = figure.find('.button'); var column = $(this).parents().eq(1); $('.column').removeAttr('style'); column.css('z-index', 2000); resetFigures(); if(flipCard(this)){ swoosh.pause(); swoosh.currentTime = 0; swoosh.play(); } }); 

另外,如果我误导了我,请纠正我的错误,但根据本网站的说法,iOS支持3D转换的前缀是: http : //caniuse.com/transforms3d

iOS没有注册绑定到DOM加载后添加的元素的点击/触摸事件。

虽然PPK有这样的build议: http : //www.quirksmode.org/blog/archives/2010/09/click_event_del.html

我发现这个简单的修复,只需将其添加到CSS:

 cursor: pointer; 

最近,当为一个客户端的web应用程序工作时,我注意到任何添加到非锚点元素的点击事件在iPad或iPhone上都不起作用。 所有台式机和其他移动设备运行良好 – 但由于苹果产品是最受欢迎的移动设备,因此修复这一点非常重要。

事实certificate,任何在jQuery中分配一个点击处理程序的非锚点元素都必须具有onClick属性(可以像下面那样是空的):

 onClick="" 

要么

元素的CSS需要有以下声明:

 cursor:pointer 

奇怪,但这就是让事情重新开始的过程!
来源: http : //www.mitch-solutions.com/blog/17-ipad-jquery-live-click-events-not-working

您应该绑定点按事件,点击在移动Safari或UIWbview中不存在。 您也可以使用这个polyfill ,以避免链接被触摸时延迟300毫秒。