2015-08-20 5 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'); 
      } 
     }); 

При нажатии на кнопку «pointerup» работает как правый щелчок, но включает и левый.

+0

Вы пытались его найти? Я нашел так много разных и очень важных решений для вашего вопроса в секундах ... Если вы спросите, потому что ни одна из этих работ не работает, вы должны указать это в своем вопросе. –

+0

Ну, я упомянул, что «rightclick» не работает, «contextmenu» также – admiral

+0

Он работает для вас в других демонстрационных версиях? (Чтобы обойти браузер в качестве виновника) –

ответ

2

Мероприятие должно быть rightclick, но mousedown. Информация о кнопках мыши находится в ее eventArgs. Попробуйте evt.button, который имеет значения 1, 2 или 3 для левой, средней или правой кнопок мыши в этом порядке для всех современных браузеров или evt.button == 2 для более старого IE.

Смежные вопросы