Кажется, что IE8 ненавидит переключение JavaScript - PullRequest
0 голосов
/ 10 июля 2011

Видите ли вы что-то не так в этом switch утверждении. IE8 выполняет шаг 3 дважды. В этом проблема.

function controlLoader(step) {
    switch (step) {
        case 1:
            $.rayanAjax('/NewSitePurchaseWizard.aspx/GetSiteTitle', null, function (result) {
                $('#contents-holder').html(result);
            }, null, $('#wizardWrapper'));
            break;
        case 2:
            $.rayanAjax('/NewSitePurchaseWizard.aspx/GetTemplates', null, function (result) {
                $('#contents-holder').html(result);
            }, null, $('#wizardWrapper'));
            break;
        case 3:
            $.rayanAjax('/NewSitePurchaseWizard.aspx/GetSubDomain', null, function (result) {
                $('#contents-holder').html(result);
            }, null, $('#wizardWrapper'));
            break;
        case 4:
            $.rayanAjax('/NewSitePurchaseWizard.aspx/GetLogin', null, function (result) {
                if (result.substr(0, 8) == 'userName') {
                    $('#userName').val(result.substr(9));
                } else {
                    $('#contents-holder').html(result);
                }
            }, null, $('#wizardWrapper'));
            break;
        case 5:
            var data = { userName: '', templateName: '', lookName: '', subDomain: '', siteTitle: '' };
            data.userName = $('#userName').val();
            data.templateName = $('#templateName').val();
            data.lookName = $('#lookName').val();
            data.subDomain = $('#subdomain').val();
            data.siteTitle = $('#siteTitle').val();
            $.rayanAjax('/NewSitePurchaseWizard.aspx/CreateSite', data, function (result) {
                $('#contents-holder').html(result);
            }, function (error) {
                alert(error.Message);
            }, $('#wizardWrapper'));
            break;
    }
}

Обновление:

Мой сценарий таков: у меня есть мастер с 5 шагами, и на каждом шаге, когда пользователь взаимодействует с этим шагом, он нажимает кнопку «Далее». При нажатии следующей кнопки я проверяю шаг и, если он действителен, я просто вызываю эту функцию, передавая индекс следующего шага. При загрузке следующего шага я просто заменяю HTML содержимого мастера на HTML, отправленный с сервера. Все (все шаги) работают нормально, но шаг 3. Я удалил все из шага 3 (создал пустой шаг), но case 3 все равно выполняется дважды. adjustStep() Функция просто устанавливает высоту текущего мастера (не более).

...