在地图上的所有$ .goMap标记上添加事件侦听器

时间:2011-03-05 01:04:38

标签: php javascript jquery google-maps-markers

我一直在尝试为使用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,看看我是否可以找出标记的id或类,然后使用jQuery将点击监听器附加到所有标记,但是在我的html标记中找不到它们。

2 个答案:

答案 0 :(得分:0)

我通过在创建它们之后为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);
                  }
                });
            });

    });
});

这会伤害表现吗?不确定。

答案 1 :(得分:-1)

$.goMap.createListener({type:'marker', marker:'testMarker'}, 'click', function() { 
        console.log('marker click');
    });