JQuery UI Аккордеон Ajax Проблемы - PullRequest
2 голосов
/ 10 мая 2011

У меня есть этот аккордеон, в котором у меня есть разделы с этой загрузкой, которые ajaxly при первом открытии. Отлично работает в ff, т.е. 8, и почти во всех браузерах. но в IE 9, если я нажму на стрелку / треугольник, это не так.

Я подстроил это так:

$("#accordian").accordion({
        collapsible: true,
        autoHeight: false,
        active : false,
        changestart: function (event, ui) {
            var clicked = $(this).find('.ui-state-focus').attr('id');
            if (clicked != "") {
                var alreadyLoaded = $('#' + clicked).attr('alreadyLoaded');
                if (alreadyLoaded == "false") {
                    var divToLoad = $('#' + clicked).attr('divToLoad');
                    var url = $('#' + clicked).attr('urlToLoadMe');

                    $('#' + divToLoad).load(url, function () {
                        //do some post load stuff
                    });
                    $('#' + clicked).attr('alreadyLoaded', "true");
                }
            }

        }

    });

мой аккордеон выглядит примерно так:

 <div id="accordian" style="height:400;">

            <h1 style="padding-left:25px;padding-top:5px; padding-bottom:5px;font-weight:bold;" id="ContactInformationHeader" urlToLoadMe="a url is here" alreadyLoaded="false" divToLoad="ContactInformationSearchSectionDiv">Contact Information</h1>
            <div id="ContactInformationSearchSectionDiv">
                loading
            </div>
    </div>

очевидно, с некоторыми другими разделами ... но это не важно.

это работает в Firefox (3.X и 4), то есть 8, но не 9. Если я щелкаю где-нибудь, но маленький треугольник это работает!

Похоже, что неправильно - активировать пользовательский интерфейс или что-то в этом роде. у кого-нибудь была похожая проблема? идеи? помочь?

jquery версия 1.4.1 JQuery UI версия 1.8.11

EDIT: я сузил это до следующего: то есть в 9, кажется, что changestart стреляет до того, как .ui-state-focus присваивается всему, b / c это ноль. как это ui-state-active.

1 Ответ

1 голос
/ 10 мая 2011

Я исправил это, изменив изменения, чтобы измениться, поэтому он срабатывает позже.Это означает, что в загрузке ajax есть небольшая задержка, но это более приемлемо, чем щелчок стрелки, не получая ее вообще!

...