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 に答える