Javascript 在地图上连续单击2次
我正在从信息窗口收集用户输入。在信息窗口中,我有一个“保存”按钮来保存用户的输入。但当我点击这个按钮时,我也会点击地图,它会使我的标记移动到其他地方。我只需要在单击“保存”按钮时关闭信息窗口。我不想让我的标记移动。代码如下:Javascript 在地图上连续单击2次,javascript,html,google-maps,Javascript,Html,Google Maps,我正在从信息窗口收集用户输入。在信息窗口中,我有一个“保存”按钮来保存用户的输入。但当我点击这个按钮时,我也会点击地图,它会使我的标记移动到其他地方。我只需要在单击“保存”按钮时关闭信息窗口。我不想让我的标记移动。代码如下: var信息窗口,标记; 函数初始化() { var myCenter=newgoogle.maps.LatLng(10.771654106.698285); var mapProp={ 中心:迈森特, 缩放:14, mapTypeId:google.maps.mapTy
var信息窗口,标记;
函数初始化()
{
var myCenter=newgoogle.maps.LatLng(10.771654106.698285);
var mapProp={
中心:迈森特,
缩放:14,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“googleMap”),
mapProp);
var html=“注释:
”+
"" +
"" +
"";
infowindow=新建google.maps.infowindow({
内容:html
});
marker=新的google.maps.marker({
});
google.maps.event.addListener(映射,'click',函数(事件)
{
var位置=event.latLng;
标记器。设置位置(位置);
marker.setMap(map);
信息窗口。打开(地图、标记);
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
函数集_data()
{
//做点什么
infowindow.close();
}
函数loadScript()
{
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=”http://maps.googleapis.com/maps/api" +
“/js?key=aizasydy0kkjitpvd2u7atoawhc9ysh6ohxoym&sensor=false&callback=initialize”;
document.body.appendChild(脚本);
}
window.onload=loadScript;
奇怪的是,除了FireFox和CHROME,我在IE9上没有这个问题
编辑:
为了解决这个问题,我只需要停止事件传播。我是这样做的:
将事件作为函数集_data()的参数传递
onclick='var event=arguments[0]| | window.event;设置_数据(事件)'
在set_数据中添加以下代码行:
e、 停止传播()
感谢Berend提供了有用的链接。事件将在dom树中弹出或捕获。对我们来说,IE使用的是与Chrome和Firefox不同的模式。看 如果不停止,事件将继续在DOM树中向上或向下移动。这就是您的体验:点击事件被按钮和chrome和Firefox中的地图捕获。由于IE使用不同的模型,所以IE9中不会出现这种情况 要停止事件传播,请使用:
e.stopPropagation();
这里还讨论了解决方案
研究
stopPropagation
如何处理javascript事件
e.stopPropagation();