除覆盖物当调用map.removeOverlay或者map.clearOverlays方法时,API会自动将initialize方法返回的DOM元素进行移除。
解决方案 »
- 如何让两个链接显示在同一行?
- ###如何获取web按钮事件?谁知道相关插件###
- 怎么将sql类型转换成相应的java类型,不管是什么类型都可以转化的!
- 如何用JavaScript修改页面的Title啊?
- 共享一个四级联动菜单的代码,代码很傻。不过可用。。
- 求救!!Netscape下的Asp开发,NetScape下怎样用Javascript控制tr的隐藏和显示
- 新手的入门问题
- 为什么在vbscript中form.submit方法不好用
- 请教各位高手。这个如何用Javascript获取?
- Jquery easyui updateRow后使用getChanges获取不到更改的数据
- jquery的remove删除不了元素呀
- select下拉框刷新以后回显值的问题
不过,把button的事件removeMarker放到addMarker中?这样button的onclick事件写removeMarker?这样写报错啊
lat = document.getElementById("txtlat");
var icon = new BMap.Icon("http://api.map.baidu.com/img/ers.png", new BMap.Size(23, 25), { offset: new BMap.Size(10, 25),
imageOffset: new BMap.Size(0, 0), // 设置图片偏移
anchor: new BMap.Size(10, 30),
infoWindowAnchor: new BMap.Size(10, 0)
});
//地址解析类
var gc = new BMap.Geocoder();
//初始化地图标记
var er = new BMap.Marker(new BMap.Point(lng.value, lat.value),
{ icon: icon });
//添加标记
map.addOverlay(er);
//标记点击事件
er.addEventListener("click", function (e) {
// map.removeOverlay(er);
// er.dispose(); var opts = {
width: 250, // 信息窗口宽度
height: 100, // 信息窗口高度
title: "test" // 信息窗口标题
}
//获取地址信息
gc.getLocation(e.point, function (rs) {
document.getElementById("txtlng").value = e.point.lng;
document.getElementById("txtlat").value = e.point.lat;
}); var infoWindow = new BMap.InfoWindow("World", opts); // 创建信息窗口对象
er.openInfoWindow(infoWindow, new BMap.Point(lng.value, lat.value)); // 打开信息窗口 });
document.getElementById('buttonid').onclick = function () { map.removeOverlay(er);
}
}
这样出错?不可能吧。。
百度api官方demo采用map.getOverlays方法,获取所有覆盖物对象,通过遍历所有对象找到指定的对象,经个人测试,理论上是可以,但实际是有bug,行不通的,不管通过标题或自定义id属性来定位到er对象,都是有问题的。
个人感觉百度api不好用