ArtDenis
@ArtDenis
Разработчик сайтов и мобильных приложений

Как вызвать функцию по onclick?

Здравствуйте. У меня следующая проблема, вероятно что она очень глупая)

Есть у меня ymaps функция, в которой определена переменная myMap. В этой функции строится карта, а также выводится в #table строки из json.

Ниже определена функция select_street. В которой идет обращение к myMap, которое конечно же, не работает. Если в этой функции сделать alert, то параметры принимаются и показываются.

Проблема в том, что если переместить функцию select_street в ymaps. То функция select_street вообще не работает, даже alert.

PS: в переменной group.items[j].center лежат координаты: "53.6562323,52.565623232". Поэтому в функции select_street принимаются два параметра.

ymaps.ready(function () {
    var myMap = new ymaps.Map('map', {
            center: [42.31599819, 69.59457850],
            zoom: 9,
            controls: ['zoomControl', 'typeSelector', 'fullscreenControl', "trafficControl", "geolocationControl"]
        });

//тут еще много кода, tr генерируется в цикле

 var submenuItem = $('<tr onclick="select_street('+coutn+','+group.items[j].center+')"><td>' + group.items[j].name + '</td><td>' + group.items[j].p + '</td><td>' + group.items[j].pr + '</td><td></td><td>' + group.items[j].p + '</td><td>' + group.items[j].pr + '</td><td><span class="tel"></span></td></tr>');
            submenuItem.appendTo($('#table'));

//этот обработчик на левой кнопке срабатывает, может в него можно передать параметры?
$("#b_calc").click(function () {
    myMap.setCenter([42.31599819, 69.59457850], 13, "map");
    myMap.panTo([[42.31599819, 69.59457850]);
    geoObjects[2].balloon.open();
});

});
function select_street(count, coordinates1, coordinates2)
{
    myMap.setCenter([coordinates1,coordinates2], 13, "map");
// Центрирование карты на добавленном объекте
    myMap.panTo([coordinates1,coordinates2]);
    geoObjects[count].balloon.open();
}


Заранее спасибо за Ваши советы)
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
@nirvimel
Можно сверху (вне всех обработчиков) ввести переменную:
var myMap;
Дальше просто заменить:
var myMap = new ymaps.Map()
на
myMap = new ymaps.Map()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы