2013-08-03 2 views
0

Я экспериментирую с образцом кода на сайте Bing SDK, но не могу получить событие click для работы с кнопками, которые я добавляю в JS .each цикл, который тянет долготу, координаты широты от сервера sql. Я могу получить push-штырьки для отображения в порядке, я могу получить InfoBoxes для отображения в порядке, если я установил их видимым в true в цикле, но если я установил видимое свойство в false в цикле, а затем попытаюсь установить видимый на true, событие pushpin click ничего не происходит. Пожалуйста, посоветуйте, спасибо.Bing Maps/JavaScript - попытка открыть InfoBox с событием нажатия PushPin

<script type="text/javascript"> 

     $(document).ready(function() { 

     var map = null; 
     var pinInfobox = null; 

     function LoadMap() { 
      map = new Microsoft.Maps.Map(document.getElementById('myMap'), {credentials: "Aq85qFzkJkdfauSc1nXq3IATrqgPGN77_MBhghypyJ94ygTElWHSHYv3WXYZT-3E"}); 
     } 

     function displayInfobox(e) { 
      defaultInfobox.setOptions({ visible: true }); 
     } 

     LoadMap(); 

     var url = "/Job/GetLocations"; 
     $.getJSON(url, null, function (data) { 
      $.each(data, function (index, LocationData) { 
       var pushpin = new Microsoft.Maps.Pushpin(map.getCenter(), { text: '' });         
       pushpin.setLocation(new Microsoft.Maps.Location(LocationData.Latitude, LocationData.Longitude));    

       var Route = LocationData.PickupCity + ' to ' + LocationData.DeliveryCity; 
       var Details = 'Pays $' + LocationData.Payment + '<br>' + 'Pickup ' + LocationData.PickupHour + LocationData.PickupMinute + '<br>' + 'Deliver ' + LocationData.DeliveryHour + LocationData.DeliveryMinute;; 
       var Content = '<a href="http://www.google.com">Google</a>'; 
       var infoboxOptions = { title: Route, description: Details, htmlContent: Content }; 
       var defaultInfobox = new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(LocationData.Latitude, LocationData.Longitude), infoboxOptions);      
       Microsoft.Maps.Events.addHandler(pushpin, 'click', displayInfobox); 
       map.entities.push(pushpin); 
       map.entities.push(defaultInfobox);          

      }); 
      map.setView({ zoom: 7, center: new Microsoft.Maps.Location(34.470639154314995, -118.55275198817253) }); 
     }); 

     }); 

    </script> 
+0

проблема заключалась в том, что я не использовал коллекции для контактов и инфобокс. например: var infoboxLayer = new Microsoft.Maps.EntityCollection(); var pinLayer = новый Microsoft.Maps.EntityCollection(); –

ответ

0

проблема заключалась в том, что я не использовал коллекции для контактов и инфобокс.

var infoboxLayer = new Microsoft.Maps.EntityCollection(); 
var pinLayer = new Microsoft.Maps.EntityCollection(); 
Смежные вопросы