2015-08-20 119 views
0

我想听右键单击,我试图"rightclick"在文档说,但它不起作用。OpenLayers 3右键单击事件

任何人都可以说为什么它不起作用?

map.on('rightclick', function (evt) { 
      var feature = map.forEachFeatureAtPixel(evt.pixel, function (feature) { 
       if (typeof (feature.getId()) != "undefined") { 
        return feature; 
       } 
      }); 

      if (feature) { 
       var registeredObjectId = -1; 

       if (typeof MapObjects !== "undefined") { 
        for (var i = 0; i < MapObjects.ObjectResult.length; i++) { 
         if (feature.p.name === MapObjects.ObjectResult[i].Id) { 
          registeredObjectId = i; 
         } 
        } 
       } 

       var geometry = feature.getGeometry(); 
       var coord = geometry.getCoordinates(); 

       if (registeredObjectId === -1) { 
        popup.setPosition(evt.coordinate); 
        $(element).popover({ 
         'placement': 'top', 
         'html': true, 
         'content': "<a style='cursor: pointer' onclick='DeleteCoordinate(\"" + feature.getId() + "\")'>Delete</a>" 
        }); 
        $(element).popover('show'); 
        $(element2).popover('destroy'); 
       } 
       else { 
        popup2.setPosition(evt.coordinate); 
        console.log(MapObjects.ObjectResult[registeredObjectId].Name); 
        console.log(MapObjects.ObjectResult[registeredObjectId].Value); 
        $(element2).popover({ 
         'placement': 'top', 
         'html': true, 
         'content': "<label>" + MapObjects.ObjectResult[registeredObjectId].Name + "</label></br><label>" + MapObjects.ObjectResult[registeredObjectId].Value + "</label></br><a style='cursor: pointer' onclick='DeleteCoordinate(\"" + feature.getId() + "\")'>Delete</a>" 
        }); 
        $(element2).popover('show'); 
        $(element).popover('destroy'); 
       } 

      } else { 
       $(element).popover('destroy'); 
       $(element2).popover('destroy'); 
      } 
     }); 

在“点击”工作时,“指针”作为右键单击,但也包括左侧。

+0

您是否尝试过搜索它?我在几秒钟内发现了许多不同的,高度优先的解决方案,如果你问这些问题是因为没有一个工作,你应该在你的问题中说明。 –

+0

呃,我提到“rightclick”不起作用,“contextmenu”也 – admiral

+0

它在其他演示中适合你吗? (以丢失浏览器为罪魁祸首) –

回答

2

该事件不应该是rightclick,而是mousedown。有关mousebuttons的信息在其eventArgs中。尝试evt.button,对于所有现代浏览器,对于左侧,中间或右侧鼠标按钮的顺序具有值1,2或3,对于较旧的IE,则为evt.button == 2