0

我在地图上有多个引脚,每个引脚都有两个与之关联的事件(鼠标单击和鼠标悬停)。但只有鼠标悬停在触发而不是点击。下面是我正在使用的代码。

//Creating the pushpin
var pin = new Microsoft.Maps.Pushpin(loc);
    pin.Description = "Some address";

    Microsoft.Maps.Events.addHandler(pin, 'mouseover', function(e){
         if (e.targetType == 'pushpin') {
         self.bingInfobox.setLocation(e.target.getLocation());
         self.bingInfobox.setOptions({
             visible: true, title: e.target.Title, description:  e.target.Description });
           }       
    });

    Microsoft.Maps.Events.addHandler(pin, 'click', function(e){
         if (e.targetType == 'pushpin') {

           // some functionality..
         }   
    });

请建议..

4

1 回答 1

0

4年...可耻的没有人回答。

本质上,鼠标悬停事件正在触发,并且您的信息框正在弹出。它可能会在引脚上弹出。

因此,当您单击时,您单击的是信息框而不是图钉本身,因此不会触发图钉点击事件。

根据地图上发生的情况,有多种选项可供选择以解决问题:

确保 pin 层 z-index 高于 infobox 层(当然,信息框最终可能会部分隐藏在层中的其他 pin 后面)。

向信息框选项添加偏移量以将其从引脚上移开。

自定义您的信息框,以便您可以控制它的外观和位置 - 确保点击可以看到图钉。

其他选择我确定。然而,至少,覆盖很可能是问题的根源。

于 2016-11-16T09:15:36.567 回答