6

私は Web アプリを作成していて、要素をクリックして、1 つの長いクリック イベント ハンドラーでクリックを処理したいと考えています。Safariでテストしています。以下は、Mac の Safari では正常に機能しますが、iOS では機能しません。

<html>
    <head>
        <script>
            window.addEventListener("click",function (event) {
                alert('hi');
            });
        </script>
    </head>
    <body>
        <div style="width: 100%; height: 100%; background: black;">
        </div>
    </body>
</html>

これが OSX バージョンの Safari では機能するのに、iOS では機能しないのはなぜですか?

4

4 に答える 4

2

このコードはクロスブラウザで動作するはずです:

function Subscribe(event, element, func) {
    if (element.addEventListener) {
        element.addEventListener(event, func, false);
    } else if (element.attachEvent) {
        element.attachEvent("on" + event, func);
    } else {
        element['on' + event] = func;
    }
}

function func () {
    alert('hi');
}

Subscribe('click', window, func);
于 2012-12-27T11:58:12.770 に答える
1

イベントリスナーの「クリック」を「クリックタッチスタート」に変更してみてください

于 2012-12-27T13:45:28.167 に答える
0

私は非常に簡単な解決策を見つけました。サンプル コードに div 要素に関する別の div を配置しました (上記の質問を参照してください)。開始のdivタグは

<div onClick="">

この div タグ内のすべての div がクリック イベントをトリガーします。これは、タッチスタートでも機能します。

于 2012-12-27T16:47:52.733 に答える
0

私の場合、次のように置き換える必要がありましwindowdocument:

iOS では動作しません:

window.addEventListener('click', () => {})

iOS対応:

document.addEventListener('click', () => {})`
于 2021-06-28T13:40:35.317 に答える