0

マップ上に複数のピンがあり、それぞれに 2 つのイベント (マウス クリックとマウス オーバー) が関連付けられています。しかし、マウスオーバーだけが発火しますが、クリックは発火しません。以下は私が使用しているコードです。

//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年… 恥ずかしくて誰も答えてくれませんでした。

基本的に、mouseover イベントが発生し、インフォボックスがポップアップします。おそらくピンの上に飛び出しています。

したがって、クリックすると、ピン自体ではなくインフォボックスをクリックしているため、ピンクリックイベントは発生しません。

マップで何が起こっているかに応じて、問題を解決するために選択できるさまざまなオプション:

ピン レイヤーの z-index が情報ボックス レイヤーよりも高いことを確認します (もちろん、情報ボックスはレイヤー内の他のピンの背後に部分的に隠れてしまう可能性があります)。

インフォボックス オプションにオフセットを追加して、ピンからずらします。

インフォボックスをカスタマイズして、その外観と配置場所を制御できるようにします。クリックするとピンが見えるようになります。

他のオプションは確かです。ただし、少なくとも、オーバーレイが問題の原因である可能性が最も高いです。

于 2016-11-16T09:15:36.567 に答える