Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在地图上连续单击2次_Javascript_Html_Google Maps - Fatal编程技术网

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();