如何在jQuery应用程序的两个选项卡中添加谷歌地图
How to add Google Maps in two tabs of jQuery application
我的jQuery应用程序中有两个选项卡。我想在两个选项卡中都使用谷歌地图。我为下面的代码中显示的每个选项卡添加了脚本和两个<div>
标记。
第一个选项卡:
<div class="map_canvas" style="width:100%; height:100%"></div>
第二个选项卡:
<div class="map_canvas" style="width:100%; height:100%"></div>
谷歌地图脚本:
function initialize()
{
var latlng = new google.maps.LatLng(11.6952727, 77.5195312);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementByClassName("map_canvas"),myOptions);
}
----------Style for Google Map
.map_canvas { height: 100% }
#notes{ height: 100%;width:100% ; margin: 0px; padding: 0px } // Tab1 div tag ,contains the First tab map Div Tag
#accordionWrapper{ height: 100%;width:100% ; margin: 0px; padding: 0px }// Tab2 div tag, contains the First tab map Div Tag
地图未显示在两个选项卡中。这里有什么问题?
正如您在这里看到的,getElementByClassName()按照找到的元素在树中的出现顺序返回它们的实时NodeList:您应该迭代该NodeList并为每个元素创建一个新的映射,因为我认为gmaps API不允许您这样做。
您需要使用map_canvas
类迭代元素,并为每个元素创建一个新的Map
实例,否则将无法工作。
我猜你是在使用jQuery UI选项卡吗?如果是这样的话,你很可能会在将谷歌地图加载到隐藏/非活动选项卡时遇到麻烦。正如评论中所提到的,已经存在关于这一点的问题,并附有解决这一问题的答案。
无论如何,对你的代码进行以下更改/添加,你就可以开始了!
CSS
.ui-tabs .ui-tabs-hide {
position: absolute;
left: -10000px;
}
JavaScript
$(function() {
// Container for maps
var maps = [],
// Initial position
latlng = new google.maps.LatLng(11.6952727, 77.5195312),
// Options for Google Maps
mapOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Iterate the canvas elements and create a new map instance
$(".map_canvas").each(function(){
maps.push(new google.maps.Map(this, mapOptions));
});
// Trigger map resize on tab change
$('#id-of-tabs-container').bind('tabsshow', function(event, ui) {
google.maps.events.trigger(maps[ui.index], 'resize');
});
});
将临时id替换为元素的相应id。
相关文章:
- 我可以在Dynamics CRM 2016的复合地址字段中添加两个选项字段吗
- 在两个多选字段之间移动选项
- 在两个浏览器选项卡之间共享变量范围
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 一个文本框,其中两个选项的值不同
- 如何使用jquery将两个字段组合为下拉菜单中的选项
- 两个不同部分的选项卡索引
- 如何减去选项两个相关的选择 HTML
- 高图表:设置两个不同系列图表的选项
- 两个选项卡—第一个选项卡在第二个选项卡中处于调试模式时被卡住
- 创建选项卡,每个选项卡有两个文本区域
- 从jquery中的select选项添加两个不同的数组值(text&value)
- 若在两个不同的选项卡中打开同一个页面,如何防止javascript运行两次
- 我有下面垂直菜单的jquery代码,当我悬停在apparels选项卡上时,我有两个选项卡作为apparels和化妆品
- 如何在HTML中用两个预定义的值绑定选择选项,以在mongodb中插入数据
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 如何在两个不同的选项卡(jQuery数据表)上同步处理可排序表
- 防止具有相同选项的两个复选框上的重复选项
- CRM 2011+问题与javascript中的两个选项集
- jquery克隆与HTML下拉选项两个下拉选择相同的值一个警报应该选择不同的值