2

为什么字符串会在循环内的对象内丢失?

for (var i = 0; i < nrow.length - 1; i++) {
displayNote = "<b>" + nfield[0] + "</b><br />" + nfield[1] + " " + nfield[2] + "<br /> " + nfield[7];
$('#googleMap').gmap3({
    action: 'addMarker',
    lat: parseFloat(nfield[5]),
    lng: parseFloat(nfield[6]),
    events: {
        mouseover: function (marker, event) {
            var map = $(this).gmap3('get'),
            infowindow = $(this).gmap3({ action: 'get', name: 'infowindow' });
            if (infowindow) {
                infowindow.open(map, marker);
                infowindow.setContent(displayNote);

displayNote 只显示所有其他信息窗口的第一个增量

4

1 回答 1

1

在 for 循环执行结束时 displayNote 将包含最后一个值。并且 InfoWindow 将在鼠标悬停时显示最后一个 displayNote。您可以通过创建新函数为每次迭代保存 displayNote

function attachEvent( displayNote, nfield ){
  $('#googleMap').gmap3({
    action: 'addMarker',
    lat: parseFloat(nfield[5]),
    lng: parseFloat(nfield[6]),
    events: {
        mouseover: function (marker, event) {
            var map = $(this).gmap3('get'),
            infowindow = $(this).gmap3({ action: 'get', name: 'infowindow' });
            if (infowindow) {
                infowindow.open(map, marker);
                infowindow.setContent(displayNote);



}


for (var i = 0; i < nrow.length - 1; i++) {
displayNote = "<b>" + nfield[0] + "</b><br />" + nfield[1] + " " + nfield[2] + "<br /> " + nfield[7];
attachEvent( displayNote, nfield  );
}
于 2011-10-18T20:49:27.317 回答