1
  1. 如果我在同一个函数中创建 gmap 的标记和信息窗口而不调用其他函数。我工作得很好。

  2. 但是现在,如果我想在函数 createMarkerInfoWin() 中封装一些操作,我该怎么办...

我试过这样:

1) 页面加载时调用函数 onLoad()。

function onLoad(){
    loadmap();
    var marker =   createMarkerInfoWin(); //i want to encapsulate some operations in it
    marker.setMap(map);  
    ...

}

2)

function createMarkerInfoWin(){
    var marker = new marker();
    var info = new infoWindow();
    var html = "<div>....</div>";  //infowindow's content

    Event.addlistener(marker,'click', function(){
       info.open(html,marker);
    });
    return marker;
}

它行不通。标记显示在地图上,但单击标记时不会显示信息窗口。

所以我猜:对象信息的内存将在函数返回时被回收。

大家好,有没有更好的方法将创建操作封装在一个函数中?我只是不想将所有代码都放在函数 onLoad() 中。

咳咳……

4

0 回答 0