1

我想添加滚动事件侦听器或 touchstart 事件侦听器。最初我使用触摸事件来停用滚动事件侦听器,如下面的代码所示:

window.addEventListener('scroll', scrollStart, false);
window.addEventListener('touchstart', touchStart, false);

function scrollMenu() {
    // do something
}

function touchStart(e) {
    window.removeEventListener('scroll', scrollStart);
    // do something
}

但我意识到在某些情况下,滚动事件会在页面加载后立即触发。因此,我不能使用上述方法。是否有另一种方法来检查浏览器是否支持触摸事件侦听器而不添加事件?

4

2 回答 2

4

Modernizr 能解决您的问题吗?有关检测触摸事件和每个浏览器兼容性的各种方法,请参见此处的示例:

http://modernizr.github.com/Modernizr/touch.html

于 2012-07-21T09:28:44.777 回答
3

应该能够检查该ontouchstart属性是否存在于window

if ("ontouchstart" in window) {
    window.addEventListener('touchstart', touchStart, false);
} else {
    window.addEventListener('scroll', scrollStart, false);
}

...虽然我无法确认 x-browser-ness。

于 2012-07-21T09:28:57.137 回答