2013-04-10 3 views
0

Я столкнулся с проблемой, которая начинает заставлять меня сходить с ума ...
Я уверен, что вы будете более свежее, чем я, чтобы понять, почему второй прослушиватель-маркер не работает. . :-(gmap прослушиватель не работает

В этом коде я получаю некоторый элемент из запроса Ajax в формате JSON

Вот 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... 
} 

Большое спасибо заранее Седрик

.

ответ

0

Если вы хотите добавить слушателя событий в не-Gmaps объект, который вы должны использовать google.maps.event.addDomListener

Таким образом, вы можете попробовать это:

google.maps.event.addDomListener(document.getElementById('resultList-' + item.id), 'click', function() { 
    map.setCenter(marker.getPosition()); 
}); 
+0

Большое спасибо ...! –

Смежные вопросы