javascript - JS - 检测触摸设备不起作用 API 3

标签 javascript html if-statement google-maps-api-3

我尝试检测用户设备是否是触摸屏,但是当我在窗口中使用'ontouchstart'条件时效果不佳。

我尝试仅针对触摸屏设备禁用dragg(我希望这是移动设备中全宽gmap的更好解决方案,以避免触摸时的滚动错误)

你能帮我找出问题所在吗?我已经检查了很多 Starkoverflow 主题,但没有找到好的解决方案,我可能是盲目的。

 function initMap() {
    var map;
    var bounds = new google.maps.LatLngBounds();

    if ('ontouchstart' in window){
    var isDraggable = !("ontouchend" in document);
    }
    else {
    var isDraggable = !('ontouchstart' in document.documentElement);
    }
    var mapOptions = {
        mapTypeId: 'roadmap',
        styles: WHITE,
        draggable: isDraggable,
        scrollwheel: false,
    };

感谢您的帮助!

最佳答案

使用google.maps.event.addListener(map, 'click', function(event) { .

每个 Maps JavaScript API 对象都会导出许多命名事件。对某些事件感兴趣的程序将为这些事件注册 JavaScript 事件监听器,并在接收到这些事件时通过调用 addListener() 在对象上注册事件处理程序来执行代码。

添加给定的 listener function给定对象实例的给定事件名称。返回此监听器的标识符,可与removeListener() 一起使用。

var isTouch = 'ontouchstart' in document.documentElement;
google.maps.event.addListener(map, 'click', function(event) {
if(isTouch)
console.log("Touched");
else 
console.log("Can't touch this");
});

关于javascript - JS - 检测触摸设备不起作用 API 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37673502/

相关文章:

javascript - 使用 Javascript 导出到 CSV

javascript - 我如何确保模块等到它们的依赖项加载到 require.js 中?

javascript - 将输入类型 "Button"更改为 "Submit Button"以验证 php 表单

javascript - 同一类的 JQuery 不同内容

javascript - 分割字符串之间的 JS if 语句

java - Java 是运行每个条件运算符还是在 If 语句中短路?

javascript - 如何在 Cordova/Ionic 中的特定坐标中存储项目/图像?

javascript - 在 JavaScript 中删除(原始)字符串的第一个字符

javascript - 使用 JavaScript 为 HTML 背景图 block 随机选择图像

Python:我是否必须使用 else 语句(除非代码强制)?