1

ピンでイベントを行いたいと思っています。ユーザーがピンをクリックすると、クリックメソッドが呼び出されます。2 番目の方法は、ユーザーがピンをドラッグしたときの dragend です。

現在、次のイベント ハンドラーがあります。

Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler);

問題は、ユーザーがピンをクリックしただけの場合、最初に endDragHandler が呼び出され、次にクリック メソッドが呼び出されることです。

これを修正する方法に関する提案はありますか?

ありがとう

4

3 に答える 3

1

私が思いついた解決策は、現在の場所を確認し、それがまだ同じ場所にあるかどうかを確認することでした.

于 2012-04-07T02:51:17.690 に答える
1

dragendの前に発火するのは確かに奇妙に思えclickますが、確かにそうです。私が考えることができる最も簡単な回避策はこれです: イベントにサブスクライブするのではなく、click代わりにイベントにサブスクライブしmousedownます:

Microsoft.Maps.Events.addHandler(pin, 'mousedown', displayInfobox);
Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler);

mousedownの前に発火しdragendます。したがって、「mousedown」の使用を回避できる場合は、これを行うことをお勧めします。を使用する必要がある場合click、事態が複雑になる可能性があります。

于 2012-04-07T01:45:07.670 に答える