OpenLayers 3 右键单击事件
OpenLayers 3 right click event
我正在尝试听鼠标右键单击,我试过 "rightclick"
文档中所说的,但它不起作用。
谁能说说为什么不起作用???
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');
}
});
在 "click" 上有效,"pointerup" 相当于右键单击,但也包括左键。
事件不应该是 rightclick
,而是 mousedown
。有关鼠标按钮的信息在其 eventArgs 中。试试 evt.button
,对于所有现代浏览器,鼠标左键、鼠标中键或鼠标右键的值依次为 1、2 或 3,对于较旧的 IE,则为 evt.button == 2
。
我正在尝试听鼠标右键单击,我试过 "rightclick"
文档中所说的,但它不起作用。
谁能说说为什么不起作用???
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');
}
});
在 "click" 上有效,"pointerup" 相当于右键单击,但也包括左键。
事件不应该是 rightclick
,而是 mousedown
。有关鼠标按钮的信息在其 eventArgs 中。试试 evt.button
,对于所有现代浏览器,鼠标左键、鼠标中键或鼠标右键的值依次为 1、2 或 3,对于较旧的 IE,则为 evt.button == 2
。