5

このonTouchハンドラーが起動しない理由を誰かに教えてもらえますか。

var myDiv = document.getElementById('existingContent');
var myButton = '<a href="#" onClick="logOut();" ontouch="logOut()">log out</a>';
myDiv.appendChild(myButton);

function logOut() {
  alert('hello');
}

iPad1を使用しています。

4

3 に答える 3

9

私の推奨事項は、MDNでここで提案されているものと同じです。

var el = document.getElementsByTagName("canvas");  
el.addEventListener("touchstart", handleStart, false); 

ontouch属性に対する私の躊躇は、クロスデバイスサポートです。このために、機能の検出を検討することができます。

Modernizrは、実行時にタッチが有効になっているかどうかを判断するための一般的な方法です。

上記のイベントが有効になっている場合、クラスtouchまたはno-touchがhtml要素に追加され、上記のコードを実行するかどうかを決定するために使用されます。

編集:

その後、タッチイベントについて説明しているこのドキュメントに出くわしました。多くのテクノロジーと同様に、まだまだあります...

于 2012-06-08T22:47:10.427 に答える
5

"touch"イベントは一切ありません。このリンクtouchstartに示されているようにtouchend、、、touchmoveおよびtouchcancelイベントを見つけることができます。HTMLで使用する必要があると思います。touchstart

ontouchstart="logOut()"

このWebページも参照してください。

于 2013-12-18T00:01:46.043 に答える
-1

ontouch = "logOut()"の代わりにonfocus = "logOut()"を使用してみてください

于 2019-08-10T11:58:35.187 に答える