要使用IE重现错误,请单击“方向”选项卡,然后单击其他任何选项。
我想做的是:
在页面加载时,什么都不做。但是,当方向标签加载时 - 设置地图。像这样:
$('#tabs').bind('tabsshow', function(event, ui) {
if (ui.panel.id == "tabs-5") {
// get map for directions
var dirMap = new GMap2($("div#dirMap").get(0));
dirMap.setCenter(new GLatLng(35.79648921414565,139.40663874149323), 12);
dirMap.enableScrollWheelZoom();
dirMap.addControl(new PanoMapTypeControl());
geocoder = new GClientGeocoder();
$("#dirMap").resizable({
stop: function() { dirMap.checkResize(); }
});
// clear dirText
$("div#dirMapText").html("");
dirMap.clearOverlays();
var polygon = new GPolygon([new GLatLng(35.724496338474104,139.3444061279297),new GLatLng(35.74748750802863,139.3363380432129),new GLatLng(35.75765724051559,139.34303283691406),new GLatLng(35.76545779822543,139.3418312072754),new GLatLng(35.767547103447725,139.3476676940918),new GLatLng(35.75835374997911,139.34955596923828),new GLatLng(35.755149755962755,139.3567657470703),new GLatLng(35.74679090345495,139.35796737670898),new GLatLng(35.74762682821177,139.36294555664062),new GLatLng(35.744422402303826,139.36346054077148),new GLatLng(35.74860206266584,139.36946868896484),new GLatLng(35.735644401200986,139.36843872070312),new GLatLng(35.73843117306677,139.36174392700195),new GLatLng(35.73592308277646,139.3531608581543),new GLatLng(35.72686543236113,139.35298919677734),new GLatLng(35.724496338474104,139.3444061279297)], "#f33f00", 5, 1, "#ff0000", 0.2);dirMap.addOverlay(polygon);
// load directions
directions = new GDirections(dirMap, $("div#dirMapText").get(0));
directions.load("from: Yokota@35.74005964772476,139.37083393335342 to: Ruby International@35.79648921414565,139.40663874149323");
}
});
导致错误的原因是什么? IE javascript调试器声称错误在于main.js,第139行字符28.(google maps api文件)。这是哪一行:
function zf(a,b){a=a.style;a.width=b.getWidthString();a.height=b.getHeightString()}
有什么想法吗?提前谢谢!
答案 0 :(得分:1)
问题似乎是jQuery标签和IE的已知问题,请参阅:Why does my slider, Google Map, sIFR etc. not work when placed in a hidden (inactive) tab?
建议的解决方案是使用以下方法覆盖jQuery Tabs CSS:
.ui-tabs .ui-tabs-hide {
position: absolute;
left: -10000px;
}
但是,这并没有立即解决您的问题,因为如果您搜索CSS,您将看到您的.ui-tabs-hide定义包含:
.ui-tabs .ui-tabs-hide { display: none !important; }
此CSS使建议的修复无效。因此,要解决此问题,您需要调整建议的修补程序,使其显示为:
.ui-tabs .ui-tabs-hide {
display: block !important;
position: absolute;
left: -10000px;
}
这应该摆脱这个问题。 HTH。