Javascript 使用Click事件和Dragend事件

Javascript 使用Click事件和Dragend事件,javascript,events,bing-maps,Javascript,Events,Bing Maps,我想把这件事记在我的别针上。当用户点击pin时,调用click方法。当用户拖动pin时,第二种方法是dragend 我目前拥有以下事件处理程序: Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox); Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler); 问题是,当用户只单击pin时,endDragHandler首先被调用,然后调用click方法

我想把这件事记在我的别针上。当用户点击pin时,调用click方法。当用户拖动pin时,第二种方法是dragend

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

Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
Microsoft.Maps.Events.addHandler(pin, "dragend", endDragHandler);
问题是,当用户只单击pin时,endDragHandler首先被调用,然后调用click方法

有没有关于如何解决这个问题的建议


谢谢在
点击
之前触发
dragend
看起来确实很奇怪,但你是对的,事实确实如此。我能想到的最简单的解决方法是:与其订阅
单击
事件,不如订阅
mousedown
事件:

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

mousedown
将在
dragend
之前触发。因此,如果你可以使用“mousedown”,我建议你这样做。如果您必须使用
单击
,事情可能会变得复杂。

我最终提出的解决方案是检查当前位置,看看它是否仍在同一位置。

虽然问题已经得到了回答,但我在CodeProject链接中找到了一个解决方案,类似于上面@johnston所建议的:

基本上,在图钉的点击事件中,新的和旧的纬度/经度在3个十进制值中进行比较。如果匹配,则假定为单击事件,否则为拖动事件。
尽管如此,我还是很惊讶为什么Bing团队并没有研究这个奇怪的问题,我花了好几个小时来解决这个问题。Bing API本身就应该解决这个问题。

我实际上也尝试过mousedown。它也不起作用,因为它有相同的结果。@Johnston,那就奇怪了。当我在bing maps javascript api的v7中尝试时,mousedown在dragend之前被调用。