.on点击事件没有使用Fusion Tables信息在Gmaps Infowindow内部触发

时间:2012-01-04 07:24:18

标签: jquery google-maps-api-3 google-fusion-tables

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

Gmaps使用Fusion Tables数据显示图层。 InfoWindow使用Fusion Tables信息填充(在Google Docs中配置 - > Fusion Table - >配置信息窗口界面)。

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代码位于body“onload”上运行的initialize函数中。 我正在使用.live jquery处理程序,但已被弃用并且反正给我带来了问题。 .on处理程序不会触发。

有什么建议吗?

1 个答案:

答案 0 :(得分:9)

您当前使用on的方式,只有在呈现页面时存在的锚点才会与此点击处理程序连接;动态添加的锚点不会像live一样被拾取。

你需要做这样的事情:

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

现在,将会观察到文档中任何位置发生的所有点击,而来自具有类detail的元素的任何点击都将导致该函数触发。

但这很浪费。希望有一些容器,你知道它们总是包含这些锚。如果有,你可以这样做:

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

现在只会观察来自ID为someDivId的元素内部发生的点击。