Javascript 以编程方式打开ol上下文菜单
当检测到长按时,我尝试在移动iOS设备上以编程方式打开 上下文菜单通常在右键单击时打开。在Android上,它也适用于长按。 根据,在iOS上,触摸事件不作为鼠标事件类型处理,而似乎只由ol contextmenu库处理 在中,建议以编程方式触发菜单。不幸的是,我不知道如何实现这一点。 通常,该事件似乎是在库中处理的,没有contextmenu.open()这样的函数,我可以调用它 现在,我这样做: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
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);
});
有什么想法,如果可能的话,如何实现