Googleマップとそのマーカーを扱うjQueryクラスがあります。 各マーカーを作成した後、私は、各マーカーのクリックリスナーを追加します。Googleマップのクラスメソッドを呼び出そうとしています。jQueryのマーカークリックイベントコールバック
var marker = new google.maps.Marker(options);
google.maps.event.addListener(marker, "click", function(event) {
//Do something with event
});
しかし、私が代わりにクラスの機能を使用したい:
google.maps.event.addListener(marker, "click", this.onVehiculeClick.bind(this));
onVehiculeClick: function(event) {
console.log(this);
console.log(event);
//Do something with event
}
これは、Firefoxでうまく機能しているとクロム:それはログこの(私のオブジェクト)とGoogleマップのイベントです。 SafariやIEではなく、Firefoxの他のバージョンでもonVehiculeClickメソッドは呼び出されず、google.maps.event.addListenerの直後にconsole.logを追加すると何も出力されません。
私は.bind(この)部分を削除した場合、メソッドが呼び出されるが、私はこのがGoogleマップオブジェクトを表しますこのコンテキストとを失っています。また、var = thisをコンストラクタに追加しようとしましたが、メソッドコンテキストでは未定義です。
Google Maps JS API v3: Need to access Marker Object from inside the Event Handler私はここで助けてくれると思われるものを見つけましたが、プロトタイプを使用していて、jQueryでカレーメソッドと同等のものを見つけることができません。
ありがとうございました!
あなたはライブラリを使用していますか? .bindはIE <9、Safari、またはFirefox <4ではネイティブでサポートされていません。シムについてはhttps://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Function/bindを参照してください。より多くのコードやリンクを提供すれば、簡単に解決できると確信しています。 – puckhead
私はjQueryとjQuery Inheritのみを使用しています。あなたは* .bind *の回避策を知っていますか?もしかしたら、各マーカーのIDを取得してGoogleの代わりにjQueryバインディングを使うことができますか? – Yuukuari
2時間前に私は自分自身に答えることができません。後でスクリプトを投稿します。あなたはここでそれを見つけることができます:http://www.2shared.com/document/gGg35IeU/gmap.htmlまたはhttp://uploading.com/files/c527addc/gmap.js/ – Yuukuari