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');
}

我正在使用 iPad 1。

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如此链接所示。我认为您必须在 HTML 中使用:touchmovetouchcanceltouchstart

ontouchstart="logOut()"

另请参阅此网页

于 2013-12-18T00:01:46.043 回答
-1

尝试使用onfocus="logOut()"而不是 ontouch="logOut()"

于 2019-08-10T11:58:35.187 回答