Javascript 为什么我能';无法处理此信息窗口的内容?
这是我的: HTML 我点击标记!然后,单击“链接”,它会向我显示警报。事实上它不起作用。但是,如果我加上: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()之外?把它放进去!我也试
$(".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");
});
});