javascript getAttribute()没有'无法在iPad2 Safari上工作
javascript getAttribute() doesn't work on iPad2 Safari
我正在尝试制作一个基于触摸的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>
当我在电脑上的Chrome/Safari上运行它时,当我点击该项目时,我可以在控制台中看到正确的itemindex
。
然而,在iPad2上,我将<img>
的itemindex
作为0
,这是正确的,但在div
或p
的情况下,itemIndex将作为错误返回。
TypeError:表达式"e.target.getAttribute"[未定义]的结果不是函数
有人能解释一下这一点吗?也可以启发我任何可用的变通方法。
触摸设备需要使用touchend
事件,而不是mouseup
事件。
基于触摸的设备不支持许多鼠标事件,如mouseup
、mousedown
、mousemove
、mouseover
、mouseout
,但支持click
事件。您也可以使用click
事件来尝试您的代码。
更新
如果您需要将事件附加到document
,您可以使用elementFromPoint函数使用以下代码段
例如:
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"));
}
相关文章:
- 在Safari执行javascript之前对其进行修改
- Safari(Mac OS)上的jQuery平滑滚动问题
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 主干网.与Safari同步问题
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- 以编程方式选择文本Mobile Safari
- onbeforeunload和asp:Safari和FireFox中的更新面板
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- 如何在关闭窗口之前在Safari扩展中捕获窗口关闭
- safari扩展中的重定向url
- JS代码在jsbin中有效,在jsfiddle或Chrome/Safari中无效
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- window.open(url).print()在Safari中不起作用
- Javascript 在加载 200mb 的新 Images() 后在 Safari / iPad2 中运行缓慢.为什么
- 需要.js - 在 safari ipad2 上“无定义呼叫”
- javascript getAttribute()没有'无法在iPad2 Safari上工作
- 在iPad2上的Safari中动态加载图像会导致内存泄漏