错误:“this.jc不是函数”(main.js第853行)

时间:2013-03-12 16:29:57

标签: javascript google-maps google-maps-api-2

我的地图表现得很奇怪。列出有关每个标记的数据的表未正确突出显示,并且tablabels变量给出了一些奇怪的结果。我的一些标记消失了,萤火虫给我一个错误,上面写着“this.jc不是一个函数”,并将我引用到main.js第853行。这个错误真的偷偷摸摸我,我甚至不确定在哪里开始排除故障。有任何想法吗?有没有人见过这样的东西?

好的,在建议检查事件后,我检查了myclick()函数:

function myclick(i) {
      GEvent.trigger(gmarkers[i], "click");
    }

firebug说在main.js第140行中关于此函数的“a”未定义

以下是其他代码,可能会有所帮助

    //Highlights rows of all nested wells with same id as marker if it is a well marker
  GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);

    //only highlight table for wells
    //markers with id = 2 are static wells, otherwise
    //we skip table highlighting
    if(marker.id==2)
    {
        var Table = document.getElementById("myTable3");
        var rows = Table.getElementsByTagName("tr");
        var f;
        for(f=0;f<rows.length;f++)
        {
            if(rows[f].id==marker.name)
                rows[f].className="selected";
            else
                rows[f].className="unselected"
        }
    }

    });

  //add marker, icon, and popup to global arrays
  gmarkers.push(marker);
  gmarkers[i] = marker;
  htmls[i] = popup_html;
  icons[i] = icon;
  /*Add data to each sidebar depending on id: 0=stream flow station, 1=rain gage, 2=well */
  if(id==0)
  {
      side_bar_html[0] += '<tr><td><a href="javascript:myclick(' + i + ')"  onmouseover="gmarkers['+i+'].blink(true,250)" onmouseout="gmarkers['+i+'].blink(false,0)">' + name + '</a><br></td>';
      side_bar_html[0] += '<td class="col1" align="center">' + number + '</td>' ;
      side_bar_html[0] += '<td class="col1" align="center">' + data2 + " " + ft +'</td>' ;
      side_bar_html[0] += '<td class="col1" align="center">' + update + '</td>';
      side_bar_html[0] += '<td class="col1" align="center"><a href=' + link + '>NWIS link</td></tr>' ;



  }
  if(id==2)
  {

     side_bar_html[2] += '<tr id=' + z + '><td><a href="javascript:myclick(' + i + ')"  onmouseover="gmarkers['+i+'].blink(true,250)" onmouseout="gmarkers['+i+'].blink(false,0)">' + number + '</a><br></td>'; 
     side_bar_html[2] += '<td class="col1" align="right">' + name + '</td>';
     side_bar_html[2] += '<td class="col1" align="right">' + data2 + '</td>';
     side_bar_html[2] += '<td class="col1" align="center">' + update + '</td>';
     side_bar_html[2] += '<td class="col1" align="center"><a href=' + link + '>NWIS Link</td></tr>' ;

     z++;
  }

  map.addOverlay(marker);
  ++i;

}

我刚检查了我的标记变量的各个方面。似乎丢失的那些也复制了某些内容。这可能与DupFlag变量有关吗?

1 个答案:

答案 0 :(得分:0)

我无法相信这是多么简单的修复。我不小心删除了一行代码:

map.addOverlay(marker);

应该是在将数据添加到侧边栏的循环之后