使用Click事件和Dragend事件

时间:2012-04-07 00:16:53

标签: javascript events bing-maps

我想要在我的别针上举办活动。一,当用户点击一个pin时,就会调用一个click方法。当用户拖动引脚时,第二种方法会很严重。

我目前有以下事件处理程序:

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

问题是,当用户只点击引脚时,首先调用endDragHandler,然后调用click方法。

有关如何解决此问题的任何建议吗?

由于

3 个答案:

答案 0 :(得分:1)

dragendclick之前发射似乎很奇怪,但你说得对,确实如此。我能想到的最简单的解决方法是:而不是订阅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本身应该解决这个问题。