3

Jquery(v1.7.1) でフュージョン テーブルと GMaps(v3) を使用します。

Gmaps は、Fusion Tables データを使用してレイヤーを表示します。InfoWindow は、Fusion Tables の情報を使用して入力されます (Google Docs -> Fusion Table -> Configure Info Window インターフェイスで設定)。

FT 情報ウィンドウのカスタム HTML の下部には、次のリンクがあります。

<div><a class="detail" href=#><b>Click to see more detail</b></a>
</div>

クリックされてからコードが実行されるかどうかを確認するための JQuery テストがあります。

$('.detail').on('click', function(){
    console.log('Click worked');
});

JQuery コードは、本体「onload」で実行される初期化関数内にあります。私は .live jquery ハンドラを使用していましたが、これは推奨されておらず、とにかく問題が発生していました。.on ハンドラは起動していません。

助言がありますか?

4

1 に答える 1

8

現在使用している方法onでは、ページがレンダリングされるときに存在するアンカーのみがこのクリックハンドラーに接続されます。動的に追加されたアンカーは、の場合のように取得されませんlive

次のようなことをする必要があります。

$(document).on('click', '.detail', function(){
    console.log('Click worked');
});

これで、ドキュメント内の任意の場所で発生するすべてのクリックが監視され、クラスdetailを持つ要素からのクリックによって関数が起動します。

しかし、これは無駄です。うまくいけば、これらのアンカーが常に含まれていることがわかっているある種のコンテナーがあります。ある場合は、次のことができます。

$("#someDivId").on('click', '.detail', function(){
    console.log('Click worked');
});

これで、IDを持つ要素の内側から発生するクリックのみsomeDivIdが観察されます。

于 2012-01-04T07:40:33.597 に答える