0

我有一长串通过 ajax 调用返回的位置列表。当用户将鼠标悬停在其中一个位置时,google 静态图像将替换为他们突出显示的 div 的位置。

每个 div 都是位置类的一部分,并且有一个名为 location 的属性,由 php 填充。正在更新的 div 称为#default。在我开始使用 ajax 调用之前,这一切都奏效了。现在它甚至无法识别悬停(我将源设为一些随机的谷歌图像,它不会改变它)。

我怎样才能让它工作,有人可以解释为什么脚本在将它们放入 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

您正在绑定所有具有类“位置”的元素,以在页面上有任何具有“位置”类的元素之前在悬停时执行方法(因为稍后使用 ajax 异步加载位置)。有几种方法可以做到这一点。1) 在 ajax 调用成功返回后执行绑定,或者 2) 使用此事件将所有未来的元素与类“位置”绑定。

显然,悬停事件不是真正的事件,它只是 mouseenter 和 mouseleave 添加在一起的简写。http://api.jquery.com/hover/ (你每天都会学到新东西)

方法二

$(".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 回答