Javascript 以编程方式打开ol上下文菜单

Javascript 以编程方式打开ol上下文菜单,javascript,jquery,mobile,contextmenu,openlayers-3,Javascript,Jquery,Mobile,Contextmenu,Openlayers 3,当检测到长按时,我尝试在移动iOS设备上以编程方式打开 上下文菜单通常在右键单击时打开。在Android上,它也适用于长按。 根据,在iOS上,触摸事件不作为鼠标事件类型处理,而似乎只由ol contextmenu库处理 在中,建议以编程方式触发菜单。不幸的是,我不知道如何实现这一点。 通常,该事件似乎是在库中处理的,没有contextmenu.open()这样的函数,我可以调用它 现在,我这样做: var map = new ol.Map({ // .... }); var contex

当检测到长按时,我尝试在移动iOS设备上以编程方式打开

上下文菜单通常在右键单击时打开。在Android上,它也适用于长按。 根据,在iOS上,触摸事件不作为鼠标事件类型处理,而似乎只由ol contextmenu库处理

在中,建议以编程方式触发菜单。不幸的是,我不知道如何实现这一点。 通常,该事件似乎是在库中处理的,没有contextmenu.open()这样的函数,我可以调用它

现在,我这样做:

var map = new ol.Map({
  // ....
});

var contextmenu = new ContextMenu({
  width: 180,
  defaultItems: true
});
map.addControl(contextmenu);

contextmenu.on('open', function (evt) {
    // do something
}
我已经添加了一个触摸处理程序,但是我无法以编程方式打开contextmenu

 $('.map')
  .on("touchstart", function(event){
      // Prevent default behavior
      event.preventDefault();
     
      // Timer for long touch detection
      timerLongTouch = setTimeout(function() {
          // Flag for preventing "normal touch event" trigger when touch ends. 
          longTouch = true;

          // I have tried different triggers, but without success so far
          // $('.map').dispatchEvent(new CustomEvent('contextmenu'));
          // $('.map').trigger('contextmenu');
          // $('.map').triggerHandler('contextmenu');
          // contextmenu.trigger("open");
          // contextmenu.triggerHandler("open");
 
      }, 1000);
  });
有什么想法,如果可能的话,如何实现