检查是否可以添加事件侦听器而不添加
Check if adding an event listener is possible without adding one
我想添加滚动事件侦听器或触摸启动事件侦听器。最初,我使用触摸事件来停用滚动事件监听器,如下代码所示:
window.addEventListener('scroll', scrollStart, false);
window.addEventListener('touchstart', touchStart, false);
function scrollMenu() {
// do something
}
function touchStart(e) {
window.removeEventListener('scroll', scrollStart);
// do something
}
但我意识到,在某些情况下,页面一加载就会触发滚动事件。因此,我不能使用上述方法。是否有其他方法可以在不添加事件的情况下检查浏览器是否支持触摸事件侦听器?
Modernizr能解决您的问题吗?请参阅此处的示例,了解检测触摸事件的各种方法以及每个触摸事件的浏览器兼容性:
http://modernizr.github.com/Modernizr/touch.html
您应该能够检查window
:中是否存在ontouchstart
属性
if ("ontouchstart" in window) {
window.addEventListener('touchstart', touchStart, false);
} else {
window.addEventListener('scroll', scrollStart, false);
}
不过,我无法确认这件事的浏览性。
相关文章:
- Javascript性能-在dom上迭代并添加侦听器
- 向JavaScript对象添加侦听器函数
- JavaScript在添加侦听器时丢失引用
- 在 React Native 中 - 是否可以在通过道具接收的动画值上添加侦听器
- 如何在 DOM 中为自定义事件添加侦听器
- 如何在元素上添加侦听器,以便在元素发生任何更新时触发事件
- 谷歌地图添加侦听器无法正常工作
- 添加侦听器以向文本字段创建警告消息
- 在地图标记上删除侦听器后添加侦听器
- 如何访问此选择器并添加侦听器
- 服务器什么时候在Node.js中为请求添加侦听器?
- 向数据表单元格添加侦听器
- 在循环中加载多个图像并为每个图像添加侦听器
- 向画布中导入的svg元素添加侦听器
- 在ExtJS中为超链接添加侦听器
- 如何向音频元素添加侦听器以实现连续播放
- Google Maps API V3-在创建标记后添加侦听器
- 如何向控件添加侦听器事件
- 向元素数组中添加侦听器时,每个元素上的函数都需要唯一的参数
- addEventListener不为元素添加侦听器