I'm currently trying to learn the Bing Maps API and currently trying to build a map with multiple pins that can be hovered to reveal a info window with that pins data. At the moment I'm experiencing a few problems. If anyone could help with the following points that would be great:[*]When I mouseleave a pin the info window doesn't get removed?[*]How can I use the data I retrieve in the addPin() to populate therequired info window?[*]In createInfoBox() I want to hide any active info window when themap gets moved but this seems to get triggered even if the map isn'tmoved?[*]If there are any improvements i can make please let me knowjsfiddle: http://jsfiddle.net/kyllle/vpepD/23/ and JS belowJS\[code\]var dealerMap = { createInfoBox: function(infobox) { var instance = this, pushpin = infobox; // Now create infowindows var NewWindow = new Microsoft.Maps.Infobox(pushpin.getLocation(), { title: 'title', offset: new Microsoft.Maps.Point(-3, pushpin.getHeight() - 5), zIndex: 999, visible: true }); //Display infowindow instance.displayInfoBox(NewWindow, pushpin); //Hide infowindow if map is moved - currently gets run without moving map //Microsoft.Maps.Events.addHandler(dealerMap.myMap, 'viewchange', instance.hideInfoBox(NewWindow)); }, displayInfoBox: function(infobox, pin) { var instance = this; //Show updated infowindow dealerMap.myMap.entities.push(infobox); //Mouse out handler to remove window Microsoft.Maps.Events.addHandler(pin, 'mouseleave', function() { instance.hideInfoBox(NewWindow); }); }, hideInfoBox: function(infobox) { var instance = this; console.log('this was called'); dealerMap.myMap.entities.remove(infobox); }, addPin: function() { var instance = this; //make $.ajax json call var response = data.dummy; //on success make each pin with returned data for (var i = 0, len = response.length; i < len; i++) { var responseItem = response, pinLocation = new Microsoft.Maps.Location(responseItem.lat, responseItem.long); //Create new pin var NewPin = new Microsoft.Maps.Pushpin(pinLocation, { icon: 'http://www.kylehouston.com/testing/sportscar_' + responseItem.id +'.png', width: 32, height: 37 }); //Push new pin onto map this.myMap.entities.push(NewPin); //Event handlers to show and hide requested infowindow information Microsoft.Maps.Events.addHandler(NewPin, 'mouseover', function(e) { console.log(this); dealerMap.createInfoBox(e.target); }); } }, init: function() { var instance = this; var mapOptions = { credentials: "AvGoKWSuMorGQb5h4UyyatCBGmGzSZe7-dWQMzXt4qqz6mV_WCC5m-paxvQhednd", center: new Microsoft.Maps.Location(37.09024, -95.712891), zoom: 5, enableClickableLogo: false, enableSearchLogo: false } dealerMap.myMap = new Microsoft.Maps.Map(document.getElementById('mapDiv'), mapOptions); //now add some pins instance.addPin(); } } dealerMap.init();});\[/code\]