0

私は頭がおかしくなり始める問題に直面しています...
2 番目のマーカー リスナーが機能しない理由を理解するには、あなたが私よりも新鮮であると確信しています。:-(

このコードでは、JSON 形式の Ajax クエリからいくつかの項目を取得します。

JavaScriptコードは次のとおりです。

// Get all items in JSON format
function getItems()
{
    // Ajax call
    $.getJSON("/index/test", function(data) {
        createMenu(data);
        fillMap(data);
    });
}

function fillMap(data){
    // For each
    $.each(data, function(key, item) {
        // Create markers
        var latLon = new google.maps.LatLng(item.lat,item.lon);
        marker = new google.maps.Marker({
            position:     latLon,
            map:         map,
            title:        'Index: ' + item.id,
        });
        // Set marker on the map
        marker.setMap(map);

        // Listener 1
        google.maps.event.addListener(marker, "click", function() {
            map.setCenter(marker.getPosition());
        });

        // Listener 2 - 
        google.maps.event.addListener($('#resultList-'+item.id)[0], 'click', function() {
            map.setCenter(marker.getPosition());
        });

     });
}


//Create the HTML menu
function createMenu(data){
    var items = [];
    //For each items
    $.each(data, function(key, item) {
        var imgHtml = '<img class="shadow" src="../images/item.png" height="48" width="48" alt="photo">';
        // Create the HTML li tag
        var html = '<li id="resultList-' + item.id + '" class="resultList">' + imgHtml + item.nom + ' ' + item.prenom + '<br/>' + item.adresse + '<br/>' + item.ville + ', ' + item.pays + '</li>';
        items.push(html);
    });

    // Fill the div
    $('<ul/>', {
        'id': 'resultList',
        'class': 'resultList',
        html: items.join('')
    }).appendTo('#divList');
    //End...
}

よろしくお願いします!セドリック。

4

1 に答える 1

0

gmaps 以外のオブジェクトにイベント リスナーを追加する場合は、使用する必要があります。google.maps.event.addDomListener

だからあなたはこれを試すことができます:

google.maps.event.addDomListener(document.getElementById('resultList-' + item.id), 'click', function() {
    map.setCenter(marker.getPosition());
});
于 2013-04-10T22:04:15.457 に答える