javascript getAttribute()不';我不能在iPad2上工作

javascript getAttribute()不';我不能在iPad2上工作,javascript,html,ipad-2,touch-event,getattribute,Javascript,Html,Ipad 2,Touch Event,Getattribute,我正在尝试做一个基于触摸屏的HTML应用程序,并在iPad2上进行了测试。然而,HTML中的自定义属性似乎存在一些问题 这是我的密码 <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> <script type="text/javascript"> document.addEvent

我正在尝试做一个基于触摸屏的HTML应用程序,并在iPad2上进行了测试。然而,HTML中的自定义属性似乎存在一些问题

这是我的密码

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">

document.addEventListener('mouseup',onTouchReleased, true);
document.addEventListener('touchend',onTouchReleased, true);

function onTouchReleased(e) {
// Capture the event
if(e.preventDefault)
    e.preventDefault();
if(e.stopPropagation)
    e.stopPropagation();
console.log(e.target);
console.log(e.target.getAttribute("itemindex"));
}
</script>
</head>
<body>
<img itemindex="0" src="video.jpg"/>
<div itemindex="1">HELLO1</div>
<p itemindex="2">HELLO2</p>

</body>
</html>

在此处插入标题
文件。addEventListener('mouseup',onTouchReleased,true);
文件。addEventListener('touchend',onTouchReleased,true);
功能已释放(e){
//捕捉事件
如果(如默认)
e、 预防默认值();
如果(如停止播放)
e、 停止传播();
console.log(如target);
log(e.target.getAttribute(“itemindex”);
}
你好
你好

当我在电脑上的Chrome/Safari上运行它时,当我单击项目时,我能够在控制台中看到正确的
itemindex

但是,在iPad2上,我将
项目索引作为
0
,这是正确的,但是如果
div
p
项目索引作为错误返回

TypeError:表达式“e.target.getAttribute”[undefined]的结果不是函数


有人能解释一下这一点吗,并告诉我任何可用的解决方法。

对于触摸设备,您需要使用
touchend
而不是
mouseup
事件

基于触摸屏的设备不支持许多鼠标事件,例如
mouseup
mousedown
mousemove
mouseover
mouseout
,但支持
点击事件。您也可以使用
单击
事件来尝试代码

更新

如果需要将事件附加到
文档
,可以使用函数使用以下代码段

例如:

function onTouchReleased(e) {
    // Capture the event
    if(e.preventDefault)
        e.preventDefault();
    if(e.stopPropagation)
        e.stopPropagation();
    var touch = e.touches[0];
    var pointTarget = document.elementFromPoint( touch.pageX, touch.pageY );
    console.log(pointTarget);
    console.log(pointTarget.getAttribute("itemindex"));
}

我做到了;-)抱歉,我忘了在第一次编辑中添加该行。您是否尝试将事件附加到特定元素,而不是文档?我现在尝试了。
document.getElementById(“divElement”).addEventListener('mouseup',onTouchReleased,true);document.getElementById(“divElement”).addEventListener('touchend',onTouchReleased,true)
HELLO1
但它仍然是相同的,
console.log(e.target)
返回什么?它返回[object HTMLElement]。但是,如果我将上述代码更改为
document.getElementById(“divElement”).addEventListener('click',onTouchReleased,true)
而不是
touchend
,它似乎工作正常。