Открыть слои несколько событий наведения мыши для нескольких маркеров - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть следующий цикл внутри функции init (); который выполняется "onload", у меня есть двойное присоединение события mouseover для каждого маркера, предупреждение i всегда возвращает значение последнего цикла / итерации (228)?

for(i=0; i<document.getElementById('departureSelect').options.length; i++){
            var coords = eval(document.getElementById('departureSelect').options[i].value);
            if(i==0){
                window['popup'+i] = new OpenLayers.Marker(new OpenLayers.LonLat(coords[0], coords[1]),icon);
            }else{
                window['popup'+i] = new OpenLayers.Marker(new OpenLayers.LonLat(coords[0], coords[1]),icon.clone());
            }

            window['z'+i] = new OpenLayers.Popup.Anchored(coords[2],
                new OpenLayers.LonLat(coords[0], coords[1]),
                new OpenLayers.Size(0,0),
                '<span class="country-label">' + coords[2] + '</span>',
                icon,
                false
            );
            window['z'+i].autoSize = true;
            window['z'+i].setBorder('1px solid #888');
            map.addPopup(window['z'+i]);
            window['z'+i].hide();

            window['popup'+i].events.register('mouseover', window['popup'+i], function(e){
                alert(i); // only returns final iteration of i (228)?????

            });

            countries.addMarker(window['popup'+i]);


    }

1 Ответ

1 голос
/ 14 апреля 2010

После многих часов мне удалось найти решение:

window['popup'+i].events.register('mouseover', window['z'+i], function(e){ // pass through popup object
                this.show(); // show popup

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...