0

ajax 呼び出しを介して返される場所の長いリストがあります。ユーザーがこれらの場所の 1 つにカーソルを合わせると、Google の静的画像が強調表示された div の場所に置き換えられます。

各 div は location クラスの一部であり、php によって埋められる location と呼ばれる属性があります。更新される div は #default と呼ばれます。私がajax呼び出しでそれを始める前に、これはすべてうまくいきました。今ではホバーも認識しません(ソースをランダムなGoogle画像にしましたが、変更されませんでした)。

どうすればこれを機能させることができますか?また、スクリプトを ajax 呼び出しに入れた後にスクリプトが機能しない理由を誰かが説明できますか? サイトの大部分を変換していますが、問題の原因を特定しないと、この問題が引き続き発生します。

ありがとう!

<script>
$(".locations").hover(function(e) {

  var id = this.id; 
  var local= $(this).attr("location"); 
  $("#default").attr("src","http://maps.googleapis.com/maps/api/staticmap?center="+ local +"&zoom=16&size=235x144")


});
</script>
4

1 に答える 1

0

ページに「locations」クラスの要素がある前に、ホバーでメソッドを実行するために「locations」クラスを持つすべての要素をバインドしています(場所は後でajaxと非同期に読み込まれるため)。これを行うにはいくつかの方法があります。1)ajax呼び出しが正常に戻った後にバインドを実行するか、2)このイベントを使用して将来のすべての要素をクラス「locations」にバインドします。

どうやら、ホバーイベントは実際のイベントではなく、mouseenterとmouseleaveを足し合わせただけの省略形です。http://api.jquery.com/hover/ (毎日何か新しいことを学びます)

方法2

$(".locations").live("mouseenter",function(e) {
    var id = this.id; 
    var local= $(this).attr("location"); 
    $("#default").attr("src","http://maps.googleapis.com/maps/api/staticmap?center="+ local +"&zoom=16&size=235x144")
});
于 2013-02-03T06:25:25.473 に答える