簡體   English   中英

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');
            }
        });

在“單擊”上它起作用,“指針”在右鍵上起作用,但也包括“左”。

該事件不應該是rightclick ,而應該是mousedown 有關鼠標按鈕的信息位於其eventArgs中。 嘗試evt.button ,對於所有現代瀏覽器,左,中或右鼠標按鈕的值依次為1、2或3,對於較舊的IE evt.button == 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM