0

我有 2 个函数addData(),并且diplayInfoBox(e)在 addData 中我有一个单击处理程序,单击时我需要获取一些事件详细信息,因此需要该事件作为 的参数displayInfoBox,我还需要将另一条信息传递给,displayInfoBox但我不确定如何在有活动的情况下做到这一点。如果我这样做displayInfoBox(e, pin)是行不通的。谁能建议我需要做些什么来解决这个问题?

JSFiddle http://jsfiddle.net/kyllle/upej8/7/

JS

addData: function() {
  //code

  //click handler
  Microsoft.Maps.Events.addHandler(pin, 'click', instance.displayInfoBox); //need to be able to pass variable pin to displayInfoBox
},

displayInfoBox: function(e) { //need to accept additional param for pin

}
4

2 回答 2

5

尝试

  Microsoft.Maps.Events.addHandler(pin, 'click', function(e){instance.displayInfoBox(e, pin);});

所以你基本上调用了一个匿名函数 onclick 反过来调用你的函数传递你想要的任何参数 - 记住也要包括事件(在这种情况下是'e')

于 2013-03-27T16:34:46.657 回答
1

你可以这样做:

Microsoft.Maps.Events.addHandler(pin, 'click', function (event) {
    instance.displayInfoBox(event, pin);
});
于 2013-03-27T16:35:03.993 回答