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

Jos*_*osh 3 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 - > Configure Info Window界面中配置).

在FT信息窗口的自定义HTML的底部是一个链接,其内容如下:

<div><a class="detail" href=#><b>Click to see more detail</b></a>
</div>
Run Code Online (Sandbox Code Playgroud)

我有JQuery测试,看它是否被点击,然后执行代码.

$('.detail').on('click', function(){
    console.log('Click worked');
});
Run Code Online (Sandbox Code Playgroud)

JQuery代码位于body"onload"上运行的initialize函数中.我正在使用.live jquery处理程序,但已被弃用并且反正给我带来了问题.但.on处理程序并没有触发.

有什么建议?

Ada*_*kis 9

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

你需要做这样的事情:

$(document).on('click', '.detail', function(){
    console.log('Click worked');
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

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