0
我想在openlayers中彈出一個click事件。現在,我在此功能的硬編碼的onclick這樣做:ClickHandler在OpenLayers中的功能
var vector = new OpenLayers.Layer.Vector("Points",{
eventListeners:{
'featureselected':function(evt){
var feature = evt.feature;
var popup = new OpenLayers.Popup.Anchored("popup",
OpenLayers.LonLat.fromString(feature.geometry.toShortString()),
new OpenLayers.Size(275,71),
'<div id="pincontent" onclick="pindetails()"><h3>' + feature.attributes.title +'</h3><div style="display: none;" id="pindescription">'+ feature.attributes.content +'</div></div>',
null,
false
);
popup.imageSrc = 'img/popup.png';
popup.autoSize = false;
popup.backgroundColor = 'transparent';
var offset = {'size':new OpenLayers.Size(0,0),'offset':new OpenLayers.Pixel(-74,-10)};
popup.anchor = offset;
popup.panMapIfOutOfView = true;
popup.imageSize = new OpenLayers.Size(275,71);
popup.relativePosition = "br";
popup.calculateRelativePosition = function() {
return 'tr';
};
feature.popup = popup;
map.addPopup(popup);
//adding event listener
map.events.register('mousedown', popup, function(evt){alert('help')}, false);
},
'featureunselected':function(evt){
var feature = evt.feature;
map.removePopup(feature.popup);
feature.popup.destroy();
feature.popup = null;
}
}
});
但更主要的OpenLayers DIV被攔截的點擊,所以我必須點擊兩次..我不知道是否有禁用方法這個。我查看了openLayers文檔,並且我不確定如何使用它們的API來添加事件偵聽器來單擊某個功能。
在'返回FALSE',我也嘗試添加'map.events.register( '鼠標按下',popcontent,功能(EVT沒有骰子){alert('help')},false);'對於featureselect和其他幾個地方的函數,不能觸發它。文檔abt事件很稀少 – Damon
這可能與z索引 –
修復它與'OpenLayers.Event.observe(popcontent,'mousedown',函數(evt){pindetails()},false); '感謝events.register提示 – Damon