2017-08-31 26 views
-1

我正在开发一个项目并使用Google Maps API。 我遇到移动设备问题。手机中的上下文菜单无法长时间工作.. Google Maps API

我使用GMaps.js 的例子也不起作用右击(长按事件)

示例代码 -​​:

google.maps.event.addListener(this.map, 'rightclick', function(e) { 
    if (options.rightclick) { 
    options.rightclick.apply(this, [e]); 
    } 

    if(window.context_menu[self.el.id]['map'] != undefined) { 
    self.buildContextMenu('map', e); 
    } 
}); 

如何解决这一问题?

回答

0

解决问题,模拟长点击点。 befor:

google.maps.event.addListener(this.map, 'rightclick', function (e) { 

插入的代码:

/** 
    * Start TIMER open context menu 
    */ 
    google.maps.event.addListener(this.map, 'mousedown', function(e) { 
     var context_menu_element = getElementById('gmaps_context_menu'); 

     document.pressTimer = window.setTimeout(function() { 
      jQuery(context_menu_element).addClass('mouse_tap'); 

      if (options.rightclick) { 
       options.rightclick.apply(this, [e]); 
      } 

      if (window.context_menu[self.el.id]['map'] != undefined) { 
       self.buildContextMenu('map', e); 
      } 
     },1000); 
     return false; 
    }); 


    /** 
    * Stop TIMER, and safe open or close context menu 
    */ 
    google.maps.event.addListener(this.map, 'mouseup', function() { 
     var context_menu_element = getElementById('gmaps_context_menu'); 

     if (jQuery(context_menu_element).hasClass('mouse_tap')){ 
      setTimeout(function() { 
       context_menu_element.style.display = 'block'; 
      }, 0); 

      jQuery(context_menu_element).removeClass('mouse_tap'); 
     } else { 
      this.hideContextMenu; 
     } 

     clearTimeout(document.pressTimer); 
     return false; 
    }); 

    /** 
    * if we move the map - cancel the opening of the context menu 
    */ 
    var context_menu_with_mouse = ['drag', 'dragend', 'dragstart']; 
    for (var ev = 0; ev < context_menu_with_mouse.length; ev++) { 
     (function (object, name) { 
      google.maps.event.addListener(object, name, function() { 
       clearTimeout(document.pressTimer); 
       jQuery(getElementById('gmaps_context_menu')).removeClass('mouse_tap').css('display', 'none'); 
       return false; 
      }); 
     })(this.map, context_menu_with_mouse[ev]); 
    } 
相关问题