//Мне нужно вызывать их по очереди циклично, иначе происходит наложение одной на другую. myGeoObjects[0].events.add('click', function(e){ $("#hidden_1").toggle(100); myMap.setCenter([55.740776, 52.406384],12); }); myGeoObjects[1].events.add('click', function(e){ $("#hidden_2").toggle(100); myMap.setCenter([54.905177, 52.298249],12); }); - Use the for loop with the given parameters javascript.ru/for - Fox
|
1 answer
function toggleDiv(id) { for(i in showedDivs) { if(id != showedDivs[i]) { $("#"+showedDivs[i]).hide(); delete(showedDivs[i]); } } if(!$('#'+id).is(':visible') ) { $('#'+id).show(); showedDivs.push(id); } else { $('#'+id).hide(); } } myGeoObjects[0].events.add('click', function(e){ //$("#hidden_1").toggle(100); toggleDiv('hidden_1'); myMap.panTo([55.740776, 52.406384],{flying:false},{safe:false}); }); myGeoObjects[1].events.add('click', function(e){ //$("#hidden_2").toggle(100); toggleDiv('hidden_2'); myMap.panTo([54.905177, 52.298249],{flying:false},{safe:false}); }); //это просто я добавил третью метку, но суть та же и она решена myGeoObjects[2].events.add('click', function(e){ //$("#hidden_3").toggle(100); toggleDiv('hidden_3'); myMap.panTo([54.536413, 52.789489],{flying:false},{safe:false}); }); - var showedDivs = []; it is better to bring it to a higher level beyond the limits of the function function init () {.....} after ymaps.ready (init); var showedDivs = []; - Ivan Tatarkin
- For completely newbies myGeoObjects [2] .events.add ('click', function (e) {//$(##idden_3").toggle(100); toggleDiv ('hidden_3'); myMap.panTo ([54.536413, 52.789489], {flying: false}, {safe: false}); it’s just that I added another geoobject (one more tag) - Ivan Tatarkin
|