70

第二次更新:看起来我的一个函数(resetFigures)阻止了事件处理程序,因此将其移至绑定函数的末尾将其整理出来。

更新:经过一些基本测试后,我意识到点击事件正在注册,只是点击时框无法翻转。

我的网站在 Chrome 和 Firefox 中运行的基本美学功能,但它拒绝在 iOS 上正常运行(在 iOS 6.1 的 iPhone 4 和 iOS 4.3.5 的 iPad 上测试)。

您可以在此处查看该站点,当然还有脚本 (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();
        }
    });

我还遇到了这个有趣的解决方法项目: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

4

3 回答 3

256

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

虽然 PPK 有这个建议:http ://www.quirksmode.org/blog/archives/2010/09/click_event_del.html

我发现这很容易解决,只需将其添加到 css 中:

cursor: pointer;
于 2013-04-15T01:26:09.913 回答
58

最近在为客户开发 Web 应用程序时,我注意到添加到非锚元素的任何点击事件在 iPad 或 iPhone 上都不起作用。所有台式机和其他移动设备都运行良好 - 但由于 Apple 产品是最受欢迎的移动设备,因此修复它很重要。

事实证明,在 jQuery 中分配了点击处理程序的任何非锚元素都必须具有 onClick 属性(可以为空,如下所示):

onClick=""

或者

元素 css 需要具有以下声明:

cursor:pointer

奇怪,但这就是让事情再次正常运转所需要的!
来源: http: //www.mitch-solutions.com/blog/17-ipad-jquery-live-click-events-not-working

于 2015-01-14T08:08:22.773 回答
2

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

于 2013-02-10T09:05:14.630 回答