70

2番目の更新:私の関数の1つ(resetFigures)がイベントハンドラーを妨げていたようです。そのため、それをバインド関数の最後に移動すると、イベントハンドラーが分類されました。

更新:いくつかの基本的なテストの後で、クリックイベントが登録されていることに気付きました。それは、タップしたときにボックスが反転しないということだけです。

私のサイトの基本的な美的機能はChromeとFirefoxで動作していますが、iOSで正しく動作しません(iOS6.1を搭載したiPhone4およびiOS4.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

DOM ロード後に追加された要素にバインドされたクリック/タッチ イベントを iOS が登録しないという問題があります。

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

タップイベントをバインドする必要があります。クリックはモバイルサファリまたはUIWbviewには存在しません。このポリフィルを使用して、リンクに触れたときの300ミリ秒の遅延を回避することもできます。

于 2013-02-10T09:05:14.630 に答える