【发布时间】:2013-12-09 13:03:20
【问题描述】:
所以我已经试过了
function isTouchDevice() {
return 'ontouchstart' in window;
}
function customBindTest(ele, eventType, callback) {
if ((eventType === 'click') && isTouchDevice()) {
eventType = 'touchend';
}
var onevent = 'on' + eventType;
if (ele.attachEvent) { // IE
ele.attachEvent(onevent, callback);
} else if (ele.addEventListener) {
ele.addEventListener(eventType, callback, false);
} else {
ele[onevent] = callback;
}
}
但我现在面临的问题是,当在带有触摸屏和鼠标垫的 Windows 8 等笔记本电脑上时。您不能在 Chrome 等浏览器中通过鼠标单击(而 IE10 很好,因为它没有 ontouchstart 键。
过去有没有人有任何想法或遇到过类似的问题?
【问题讨论】:
-
您提供的代码不会禁止鼠标点击。您应该显示处理“新闻”的代码
-
嗯,我正在测试它是否是一个触摸设备,然后绑定 touchend 而不是点击。
-
为什么不同时绑定?
-
在 iPad 等设备上绑定两者时,它会搞砸,例如我在视频标签上有这个来暂停视频。它搞砸了暂停然后播放就像发射两次一样......
-
很酷,谢谢,我会看看:)
标签: javascript html