@SergeiB

Как получить доступ к функции?

Работаю с Google Maps API. Для информационного окна установил свой контент, в котором помимо прочего есть динамически генерируемая ссылка, вызывающая функцию:
var content = '...<a href="#" onclick="getDirections(' + args + ');return false;">...';

Проблема в том, что если я оборачиваю весь свой код в анонимную самовызывающуюся функцию, то вышеуказанная функция перестаёт работать. Правильно ли я понимаю, что это происходит из-за замыкания, и как получить к ней доступ снаружи?
Другими словами, функция getDirections объявлена внутри анонимной функции, снаружи её не видно, а обработчик onclick, назначенный в атрибуте элемента, похоже, видит лишь функции, объявленные в глобальной области видимости. Есть ли способы это обойти?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
@abberati
frontend-разработчик
(function () {
// some code...

window.getDirections = function () {
  //some code...
}

//another code...
})()


или

(function () {
// some code...

function getDirections() {
  //some code...
}

//another code...

window.getDirections = getDirections;
})()
Ответ написан
Комментировать
@SergeiB Автор вопроса
Сделал так:
var gmaps = (function () {
  // some code...

  var content = '...<a href="#" onclick="gmaps.getDirections(' + args + ');return false;">...';

  var calculateAndDisplayRoute = function() {
    //some code...
  };

  //another code...

  return {
    getDirections: calculateAndDisplayRoute()
  };
}());
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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