Googleは、マップ上にカスタム凡例を作成する方法のいくつかの例を提供しました。ここにコードがあります。GoogleマップのDOMイベントが応答しない
var legend = document.createElement('div');
legend.id = 'legend';
var content = [];
content.push('<h3><b>View option</b></h3>');
content.push('<div id="general"><svg height="20" width="200"><g><rect width="15" height="12"class="general" ></g><g><text x="26" y="10">General</text></g></svg></div>');
content.push('<div id="faculty"><svg height="20" width="200"><g><rect width="15" height="12"class="faculty"></g><g><text x="26" y="10">Faculty</text></g></svg></div>');
content.push('<div id="sexDiv"><svg height="20" width="200"><g><rect width="15" height="12"class="sex"></g><g><text x="26" y="10">Sex</text></g></svg></div>');
content.push('<div id="level"><svg height="20" width="200"><g><rect width="15" height="12"class="level"></g><g><text x="26" y="10">Level of education</text></g></svg></div>');
legend.innerHTML = content.join('');
legend.index = 1;
map.controls[google.maps.ControlPosition.RIGHT_TOP].push(legend);
私はグーグルからも、このコードを使用して、(ユーザーがクリックした伝説に基づいたデータを表示する)という伝説がインタラクティブにしようとしています。
var sexOpt = document.getElementById("sexDiv");
google.maps.event.addDomListener(sexOpt, 'click', function() {
window.alert('Sex was clicked!'); /*just to test*/
});
しかし、それは聞こえません。以前は、クラスとIDの名前が似ていたので、それは紛争(明らかにそれがない)でもあると思っていましたが、それでも聞こえません。
あなたが 'にconsole.log(sexOpt)'あなたは何を見ますか?私はあなたがそれにイベントをバインドするときに要素が存在しないと推測しています。 –
@RoryMcCrossan Uncaught TypeError:ヌルのプロパティ 'addEventListener'を読み取ることができません – ohlala
コードの全く異なる部分のエラーのようです。ダブルクリックすると違反行に移動します。 –