Javascript 为什么我能';无法处理此信息窗口的内容?

Javascript 为什么我能';无法处理此信息窗口的内容?,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,这是我的: HTML 我点击标记!然后,单击“链接”,它会向我显示警报。事实上它不起作用。但是,如果我加上: $(".punto-leggi").click(); 在文档准备就绪结束时,它将获得“单击”。然后调用处理程序 为什么会有这种行为?如何修复它?单击处理程序未连接到信息窗口中的链接。您必须使用授权来授权单击 编辑:根据ianpgall的建议,将文档更改为#mappa事件 为什么要将“.punto leggi”的onclick绑定到document.ready()之外?把它放进去!我也试

这是我的:

HTML 我点击标记!然后,单击“链接”,它会向我显示警报。事实上它不起作用。但是,如果我加上:

$(".punto-leggi").click();
在文档准备就绪结束时,它将获得“单击”。然后调用处理程序


为什么会有这种行为?如何修复它?

单击处理程序未连接到
信息窗口中的链接。您必须使用授权来授权
单击

编辑:根据ianpgall的建议,将
文档
更改为
#mappa事件


为什么要将“.punto leggi”的onclick绑定到document.ready()之外?把它放进去!我也试过了!无论如何,它不起作用……我没想到会修复它,但您应该始终在document.ready()中绑定事件处理程序(除非您的javascript代码位于页面底部……如果它位于中,则DOM尚未加载,并且找不到元素)。如果动态添加内容,则不能使用simple.click()进行绑定,您需要使用.live()/.delegate(),但最近使用的是.on(),我不会使用document,但这应该可以解决它。我会使用一些更接近链接容器的东西…它似乎可以工作!但是为什么要把
$(“.punto-leggi”)。点击()它触发我的原始处理程序?这是同样的方法:根据你的理论,委托/生活他们应该工作!事实上,他们没有:O@ianpgall你说得对。我已将其更改为maps-container。请查看您的代码。。。看看jQuery的源代码。。。当您创建
信息窗口时,您会将
#mappa信息窗口中内容的副本传递给它。此内容没有附加事件处理程序。当您使用
$(…)时,单击()
您可以单击
#mappa信息窗口中的链接,该窗口仍然附加了事件处理程序。
var map;
var location = new google.maps.LatLng(45.930976, 10.639744);

$(".punto-leggi").click(function (e) {
    e.preventDefault();
    alert("Clicked");
});

$(document).ready(function () {
    var mapOptions = {
        mapTypeControl: false,
        panControl: false,
        zoom: 8,
        center: location,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("mappa-eventi"), mapOptions);

    var marker = new google.maps.Marker({
        position: location,
        map: map                
    });

    var infowindow = new google.maps.InfoWindow({
        content: $('#mappa-infowindow').html()
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });  
});
$(".punto-leggi").click();
$(function() {
    // ...
    $("#mappa-eventi").on("click", ".punto-leggi", function(ev) {
        ev.preventDefault();
        alert("foo");
    });
});