代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

切换基于jqueryui的选项卡时参数无效的问题

  •  1
  • Chaddeus  · 技术社区  · 14 年前

    Here's a page with the issue

    要重现错误,请使用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个字符中。(谷歌地图API文件)。这是哪一行:

    function zf(a,b){a=a.style;a.width=b.getWidthString();a.height=b.getHeightString()}
    

    有什么想法吗?事先谢谢!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mark McLaren    14 年前

    问题似乎是jquery选项卡和ie的已知问题,请参见: Why does my slider, Google Map, sIFR etc. not work when placed in a hidden (inactive) tab?

    建议的解决方案是重写jquery选项卡css,方法是:

    .ui-tabs .ui-tabs-hide {
        position: absolute;
        left: -10000px;
    }
    

    但是,这不会立即解决您的问题,因为如果搜索CSS,您将看到.ui选项卡隐藏定义包含:

    .ui-tabs .ui-tabs-hide { display: none !important; }
    

    此CSS使建议的修复无效。因此,要解决问题,您需要调整建议的解决方案,使其显示:

    .ui-tabs .ui-tabs-hide {
       display: block !important;
       position: absolute;
       left: -10000px;
    }
    

    这应该能解决问题。Hth.