2016-06-21 3 views
0

ベクターレイヤーの機能がクリックされたときにポップアップを表示しようとしています。OpenLayers 3情報を追加するポップアップ要素がnullを返す

これは私が私が作成したマップにポップアップをロードしています別の.jsファイルに続いて...マップと同じ.cshtmlページ

<div id="popup" title="Welcome to ol3"> 
     &nbsp; 
    </div> 

あると それを追加...

map.on( 'クリック')...

var element = popup.getElement(); 
     var coordinate = evt.coordinate; 
     $(element).popover('destroy'); 
     popup.setPosition(coordinate); 
     // the keys are quoted to prevent renaming in ADVANCED mode. 
     $(element).popover({ 
      'placement': 'top', 
      'animation': false, 
      'html': true, 
      'content': '<p>Something happened...good for you</code>' 
     }); 
     $(element).popover('show'); 

ただしのdocument.getElementById( "ポップアップ")で、その後

var popup = new ol.Overlay({ 
     element: document.getElementById('popup') 
    }); 
    map.addOverlay(popup); 

何か助けが大変ありがとうございます!

+0

あなたはあなたが与えたidが** popup **である間、あなたはなぜ '' document.getElementById( 'info') ''と言っていますか? '' document.getElementById( 'popup') ''を試してください。 – Neelesh

+0

これは、質問のタイプミスです。コードには、document.getElementById( 'popup')のコードが表示されます。質問を編集して修正します。応答していただきありがとうございます。 –

+1

あなたのコードに間違いはないようです。それは動作するはずです。ここhttp://jsfiddle.net/n54xp0fa/私は問題を再現しようとしましたが、正常に動作しています。 – Neelesh

答えて

0

@Neeleshさんのお返事ありがとうございます。これはOL3コードが古いものに変わって実行されているようですが、これはかなり頻繁にライブラリが変わるために頻繁に起こります。今私はどのように把握する必要があり、あなたは私が変更フィドルに提供された例...

var element = popup.getElement(); 
    var coordinate = evt.coordinate; 
    angular.element(element).popover('destroy'); 
    popup.setPosition(coordinate); 
    // the keys are quoted to prevent renaming in ADVANCED mode. 
    $(element).popover({ 
     'placement': 'top', 
     'animation': false, 
     'html': true, 
     'content': '<p>Something happened...good for you</code>' 
    }); 
    $(element).popover('show'); 

TO ...

var coordinate = evt.coordinate; 
     document.getElementById('popup-content').innerHTML = '<p>It is working</p>'; 
     popup.setPosition(coordinate); 

を使用して...それは、ポップアップを表示するために働いていました私がクリックしたベクトルレイヤーの特徴を判断するには

関連する問題