.on click событие не запускается внутри Gmaps Infowindow с информацией Fusion Tables - PullRequest
3 голосов
/ 04 января 2012

Использование таблиц Fusion и GMaps (v3) с Jquery (v1.7.1).

Gmaps отображает слой, используя данные таблиц Fusion. Информационное окно заполняется с использованием информации таблиц Fusion (настраивается в Google Docs -> Fusion Table -> Настройка окна информации).

В нижней части пользовательского HTML-окна информационного окна FT есть ссылка, которая гласит:

<div><a class="detail" href=#><b>Click to see more detail</b></a>
</div>

У меня есть тестирование JQuery, чтобы увидеть, щелкнуло ли оно, а затем выполнить код.

$('.detail').on('click', function(){
    console.log('Click worked');
});

Код JQuery находится внутри функции инициализации, которая выполняется в теле «onload». Я использовал обработчик .live jquery, но он устарел и все равно доставлял мне проблемы. Однако обработчик .on не запускается.

Есть предложения?

1 Ответ

9 голосов
/ 04 января 2012

То, как вы в настоящее время используете on, только привязки, которые существуют при визуализации страницы, будут подключены с этим обработчиком кликов;динамически добавленные якоря не будут выбираться так, как они были с live.

. Вам нужно будет сделать что-то вроде этого:

$(document).on('click', '.detail', function(){
    console.log('Click worked');
});

Теперь все клики, которые происходят в любом месте документабудет наблюдаться, и любой исходящий из элемента с классом detail вызовет срабатывание функции.

Но это расточительно.Надеюсь, есть какой-то контейнер, который, как вы знаете, всегда будет содержать эти якоря.Если есть, вы можете сделать:

$("#someDivId").on('click', '.detail', function(){
    console.log('Click worked');
});

Теперь будут наблюдаться только щелчки, происходящие изнутри элемента с идентификатором someDivId.

...