Проблема с неверным аргументом при переключении вкладок на основе jQueryUI - PullRequest
1 голос
/ 12 марта 2010

Вот страница с вопросом

Чтобы воспроизвести ошибку, с помощью 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");

    }
});

Какого черта вызывает ошибку? Отладчик javascript IE утверждает, что ошибка заключается в файле main.js, строка 139, символ 28. (файл API карт Google). Что это за строка:

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

Есть идеи? Заранее спасибо!

1 Ответ

1 голос
/ 15 марта 2010

Похоже, что проблема связана с jQuery Tabs и IE, см .: Почему мой слайдер, Google Map, sIFR и т. Д. Не работают, когда они размещены на скрытой (неактивной) вкладке?

Предлагаемое решение - переопределить CSS вкладок jQuery, используя:

.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;
}

Это должно избавить от проблемы. НТН.

...