[OpenLayers-Users] Event "featureunhighlighted" not triggered
Olivier THIERRY
olivier.thierry at gmail.com
Wed Mar 17 12:14:05 EDT 2010
Hi,
I have a vector layer with two SelectFeature controls : one is used
for selection, the other is used to show a popup.
It works well except for one case : if I select an element in the
vector, then I move the mouse to this element, the
"featurehighlighted" event is fired, but on mouse out the
"featureunhighlighted" event is not fired !
Here is the piece of code to create the layer :
layer = new OpenLayers.Layer.Vector(
"Rejets",
{
styleMap: styles,
displayInLayerSwitcher : false,
rendererOptions: {
zIndexing: true
}
});
map.addLayer(layer);
Here is the control for selection :
var selectControl = new OpenLayers.Control.SelectFeature(
layer,
{
multiple: true
, hover: false
, toggle: true
, onSelect : function(feature) {
var rejet = feature.rejet;
if (rejet != null) {
if (! rejet.selected) {
feature.selected = true;
rejet.select();
}
}
}
, onUnselect : function(feature) {
var rejet = feature.rejet;
rejet.hideTooltip();
if (rejet != null && rejet.selected) {
feature.selected = false;
rejet.unselect();
}
}
});
selectControl.id = "selectRejets";
Here is the control to display popup :
var highlightControl = new OpenLayers.Control.SelectFeature(
layer,
{
multiple: false
, hover: true
, highlightOnly: true
, eventListeners: {
featurehighlighted : function(e) {
var rejet = e.feature.rejet;
if (rejet != null) {
rejet.showTooltip();
}
}
, featureunhighlighted : function(e) {
var rejet = e.feature.rejet;
if (rejet != null) {
rejet.hideTooltip();
}
}
}
});
highlightControl.id = "highlightRejets";
And the two controls are activated this way (order has influence on behaviour) :
map.addControl(highlightControl);
map.addControl(selectControl);
highlightControl.activate();
selectControl.activate();
Any idea what I did wrong ? Or could it be a bug (if so, I absolutely
need a way to workaround this problem).
Thanks in advance,
Olivier
More information about the Users
mailing list