我想要在我的别针上举办活动。一,当用户点击一个pin时,就会调用一个click方法。当用户拖动引脚时,第二种方法会很严重。
我目前有以下事件处理程序:
Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler);
问题是,当用户只点击引脚时,首先调用endDragHandler,然后调用click方法。
有关如何解决此问题的任何建议吗?
由于
答案 0 :(得分:1)
dragend
在click
之前发射似乎很奇怪,但你说得对,确实如此。我能想到的最简单的解决方法是:而不是订阅click
事件,而是转而使用mousedown
事件:
Microsoft.Maps.Events.addHandler(pin, 'mousedown', displayInfobox);
Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler);
mousedown
会在dragend
之前触发。因此,如果您可以使用'mousedown',我会建议您这样做。如果您必须使用click
,事情可能会变得复杂。
答案 1 :(得分:1)
我最终提出的解决方案是检查当前位置,看看它是否仍在同一位置。
答案 2 :(得分:0)
虽然问题已经得到解答,但我在this CodeProject链接找到了一个解决方案,类似于@johnston上面提到的那样:
基本上在图钉的点击事件中,新旧纬度/经度将以3个十进制值进行比较。如果它匹配它假定它的click事件,否则它是一个拖动事件。 我很惊讶为什么Bing团队没有把自己看成这个奇怪的问题,这花了我几个小时来解决。 Bing API本身应该解决这个问题。