我尝试检测用户设备是否是触摸屏,但是当我在窗口中使用'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/