JavaScript スコープに関する質問です。3 つのファイルがあります (関連性があるかどうかはわかりませんが、Backbone を使用しています)。最初のファイルは、Google マップのカスタム情報ウィンドウを定義します。2 番目のファイルは、Google マップ マーカーを定義し、それに情報ウィンドウを適用します。最後に、3 番目のファイルは、マーカーとその他のページ要素をマップに追加します。
3 番目のファイルで、情報ウィンドウでのマウスオーバー イベントをリッスンし、発生したときに他のページ要素のメソッドを呼び出せるようにしたいと考えています。ただし、私の JavaScript は次の方法を知るには十分ではありません。
// InfoWindow.js defines the info window & adds a mouseover event
AI.InfoWindow.prototype = new google.maps.OverlayView;
AI.InfoWindow.prototype.onAdd = function() {
this.listeners = [
google.maps.event.addDomListener(this.$content.get(0), "mouseover", function (e) {
clearTimeout( window.hidePopupTimeoutId );
}) ...
];
};
// Marker.js defines the map marker and adds the infowindow
AI.Marker = function() {
google.maps.Marker.prototype.constructor.apply(this, arguments);
this.infoWindow = new AI.InfoWindow();
}
// Home.js creates the markers for the map
var myOtherHomePageElement = new AI.OtherHomePageElement();
var marker = new AI.Marker({
data: entity
});
// how to listen to infowindow events here?
私の質問は次のとおりです。情報ウィンドウのマウスオーバーは正常に機能していますmyOtherPageElement.start()
が、マウスオーバーがあるたびに呼び出すことができるようにしたいと考えています。Home.js ファイル内からこれを行うにはどうすればよいですか?