Добавление прослушивателя событий на все маркеры $ .goMap на карте - PullRequest
0 голосов
/ 05 марта 2011

Я пытался добавить прослушиватель кликов для каждого маркера на карте, созданной с расширением jQuery $ .goMap.

Вот как я загружаю все маркеры на карту:

$.getJSON('get_markers.php', function(data) {
    $.each(data, function(pair) {
        id = data[pair]['id'];
        $.goMap.createMarker({
            latitude: data[pair]['lat'],
            longitude: data[pair]['lng'],
            draggable: false,
            html: {
                ajax: 'marker_description.php?q=' + id,
                content: 'loading...'
            }
        });
    });
});

Я заглянул в HTML, чтобы узнать, смогу ли я определить идентификатор или класс маркеров, чтобы затем использовать jQuery для прикрепления прослушивателя щелчка ко всем из них, но не смог найти их в моей html-разметке. *

Ответы [ 2 ]

0 голосов
/ 05 марта 2011

Я решил эту проблему, добавив прослушиватель к каждому маркеру в цикле for после их создания. Я добавил атрибут id к маркеру для создания слушателей.

$.getJSON('get_markers.php', function(data) {
    $.each(data, function(pair) {
        var id = data[pair]['id'];
        $.goMap.createMarker({
            latitude: data[pair]['lat'],
            longitude: data[pair]['lng'],
            draggable: false,
            id: id
            /*html: {
                ajax: 'marker_description.php?q=' + id,
                content: 'loading...'
            }*/
        });

        $.goMap.createListener({type:'marker', marker:id}, 'click', function() { 
                $.ajax({
                  url: "show_post.php?q="+id,
                  success: function(html){
                    $("#results").html(html);
                  }
                });
            });

    });
});

Будет ли это вредить производительности? Не уверен.

0 голосов
/ 05 марта 2011
$.goMap.createListener({type:'marker', marker:'testMarker'}, 'click', function() { 
        console.log('marker click');
    }); 
...