3

将 Fusion Tables 和 GMaps(v3) 与 Jquery(v1.7.1) 一起使用。

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');
});

someDivId现在只会观察到从具有 id 的元素内部发生的点击。

于 2012-01-04T07:40:33.597 回答