OpenLayers: двойной unselect в Chrome
Добавлено: 23 июл 2013, 22:22
Всем привет!
Странное дело у меня опять:
есть функции
Тоесть суть objectCentred - закрывать текущий popup и выбирать новый фьючер (из списка закрываемого popup)
Проблема в том, что почему то срабатывает 2 раза событие unselect (это мне понятно по алерту) . Причём второй раз оно почемуто срабатывает после selectControl1.select(features); и поэтому закрывает новый popup
Если эту стоку закоментить (selectControl1.select(features)), то один раз срабатывает.
вот функция выбора объекта - ничего особенного
а если закомментить эту - selectControl.unselect(selectedFeature); о вообще ни разу не срабатывает, и в итоге у меня 2 открытых popup 
Ничё не понимаю...
Происходит это только в Chrome. в ИЕ - всё ок.
Есть идеи?
Странное дело у меня опять:
есть функции
Код: Выделить всё
// Функция центрирования объекта
function objectCentred(lon, lat, id) {
// если popup окно открыто, закрываем его
if (selectedFeature !== undefined) {
selectControl.unselect(selectedFeature);
}
var ll = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
for (var i = 0; i < features.length; ++i) {
if (features[i].attributes.Id === id) {
markerLayer.addFeatures(features[i]);
previousZoom = map.getZoom();
map.setCenter(ll, 10);
selectControl1.activate();
selectControl1.select(features[i]);
return;
}
}
}
и
function onFeatureUnselect(feature) {
alert(11);
if (feature.popup !== null) {
map.removePopup(feature.popup);
feature.popup.destroy();
feature.popup = null;
}
if (!selectedFeature.cluster) {
markerLayer.destroyFeatures(selectedFeature);
selectControl1.deactivate();
}
selectedObjectID = -1;
selectedFeature = undefined;
}
Проблема в том, что почему то срабатывает 2 раза событие unselect (это мне понятно по алерту) . Причём второй раз оно почемуто срабатывает после selectControl1.select(features); и поэтому закрывает новый popup

Если эту стоку закоментить (selectControl1.select(features)), то один раз срабатывает.
вот функция выбора объекта - ничего особенного
Код: Выделить всё
function onFeatureSelect(feature) {
selectedFeature = feature;
var popupText = "<div><Label>";
var orderedFeauters = [];
if (!feature.cluster) {
Service.GetObjectInfo(feature.attributes.Id, showObjectInfo, onFailure);
return false;
}

Ничё не понимаю...
Происходит это только в Chrome. в ИЕ - всё ок.
Есть идеи?