jQuery append 不适用于谷歌地图
jQuery append not working with google maps
我的jQuery追加函数不起作用。我有一个div,里面有一个名为"CollapsiblePanelContent"的类。我还有一个谷歌地图标记生成器,可以为我生成标记。我有一个数组标记Arr,其中包含来自XML的所有标记信息。当生成器完成时,我调用一个函数appendMarkers():
function appendMarkers() {
for(var i = 0; i < markersArr.length;
i++) {
var marker = markersArr[i];
$('.CollapsiblePanelContent').append("<a href='#'
onclick='showInfoWindow("+i+")>
"+marker.getAttribute('name')+"</a><br>");
}
}
div 看起来像这样:
div class="CollapsiblePanelContent">
/div>
控制台日志记录给了我标记Arr的确切长度,并且检查谷歌地图和jquery是否加载都是积极的。
有人可以告诉我我做错了什么吗?
更新不知何故,当我在我的函数中使用 marker.getAttribute 时,它不起作用。但是当我执行以下操作时:
var name = markersArr[i].getAttribute("name")
并编辑以下内容以:
$('.CollapsiblePanelContent').append(name);
它确实奏效了。对我来说,目前尚不清楚为什么此更改使其有效。也许有人可以解释一下?
该函数包含语法错误。
使用 jQuery-way 而不是 string-concatenation 来创建元素:
function appendMarkers() {
for(var i = 0; i < markersArr.length; i++) {
var marker = markersArr[i];
$('.CollapsiblePanelContent')
.append($('<a>',{href:'javascript:void(0)'})
.text(marker.getAttribute('name'))
.click(i,showInfoWindow))
.append('<br/>');
}
}
注意:showInfoWindow
可以通过arguments[0].data
访问i
您可以向标记对象添加属性。检索后,您可以访问它们。所以:
假设您的标记是这样设置的:
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
name: 'my name is...'
});
您可以通过以下方式在函数中检索名称:
function appendMarkers() {
for (var i = 0; i < markersArr.length; i++) {
var marker = markersArr[i];
$('.CollapsiblePanelContent').append("<p>"+marker.name+"</p>");
}
}
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 谷歌地图根本不适用于Meteor-iOS
- 标记动画不适用于谷歌地图API
- 为什么谷歌地图不适用于gmaps.js+ ie9
- 您是否需要将 API 密钥用于客户端应用程序的谷歌地图 API
- jQuery append 不适用于谷歌地图
- 谷歌地图API - 返回60多个地名用于雷达搜索
- 谷歌图表适用于IE7,但不适用于IE8或IE9
- 静态谷歌地图不适用于我的情况
- 谷歌地图中的嵌套数组,用于制作许多多边形
- 如何将变量的值用于谷歌地图,以便它在地图上显示该地点
- 在谷歌地图Javascript API v2(用于营业执照)中,如何正确调用地图API
- 谷歌地图自动完成与建筑物不适用于路由
- 使用角度谷歌地图无法将点击事件绑定到用于显示单个窗口的标记
- Selenium findElement不适用于谷歌地图
- 用于删除谷歌地图标记的反向动画
- 地图标记getPosition()在第一次调用函数时不适用于谷歌地图
- 谷歌地图不适用于自定义图像标记
- 谷歌地图API GeoJSON不适用于IE 11,但适用于Chrome
- 谷歌地图V3 JavaScript仅适用于Chrome浏览器