如何将函数及其参数传递给事件处理程序

时间:2019-05-03 01:45:19

标签: javascript jquery google-maps

我正在尝试编写一个使用标签创建标记的JQuery对象

每次创建标记时,我都会通过单击标记时要执行的功能,因此我为该功能添加了两个字段clickCallBackFunction,为其参数添加了params

问题在于函数传递成功,但参数传递失败。

Maps={
  createLabel:function(config){
       var marker=new MarkerWithLabel(
         {position:config.position,
          map:this.map,
          icon:'/img/s.gif',
          labelContent:config.text,
          clickCallBackFunction:config.clickCallBackFunction||null,
          params: config.params||null,
         }
        );
        if(config.clickCallBackFunction){
        google.maps.event.addListener(marker,"click", function(e){
              params = {};
              if(this.params ){
                params = this.params;
              }
              window[this.clickCallBackFunction](params );

          });
        } 
      },
}

这些是我如何创建标记的示例:

情况1:我使用2个参数调用函数

    Maps.createLabel({text:"text", 
                      position:labelPosition,
                      clickCallBackFunction: "clickOnCity",
                      params: {lat: lat, lon: lon}
                     })
function clickOnCity(lat, lon){
   //do something 
}

情况2:我使用3个参数调用函数

Maps.createLabel({text:"text", 
                      position:labelPosition,
                      clickCallBackFunction: "zoomCity",
                      params: {lat: lat, lon: lon, zoom: zoom}
                     })
function zoomCity(lat, lon, zoom){
   //do something 
}

0 个答案:

没有答案