Bootstrap-tour onNext не работает должным образом - PullRequest
0 голосов
/ 10 мая 2018

Может кто-нибудь сказать, пожалуйста, как работает этот плагин http://bootstraptour.com/api/?У меня есть шаг туда, где я хочу перенаправить на динамический URL.Поэтому я пишу обратный вызов onNext, который выглядит как код ниже.Редирект работает нормально, НО на следующем сайте я вижу такой же шаг.Не следующий, но такой же глупый шаг.Может кто-нибудь сказать мне, что не так с этим кодом?Это сводит меня с ума ...

    { // 18
        orphan: true,
        title: "Zakázky",
        content: "Výborně, Vaše první zakázka je založena. Klikněte na její modrý název pro pokračování.",
        path: basePath + '/commission',
        onNext: function () {
            var commissionId = $('.tour-commission-detail').first().data('id');
            if( ! commissionId )
            {
                alert('Nejdříve musíte založit aspoň jednu zakázku');
                tour.prev();
                return;
            }
            document.location.href = basePath + '/commission/overview/' + commissionId;
            return (new jQuery.Deferred()).promise();
        }
    },
    { // 19
        orphan: true,
        title: "Zakázky",
        content: "Nyní se nacházíte na přehledu zakázky. Vidíte zde všechny základní informace. <br>V dalších krocích doplníme " +
            "na zakázku zaměstnance, materiál a další náklady."
    }

1 Ответ

0 голосов
/ 18 октября 2018

Проблема в этой строке

return (new jQuery.Deferred()).promise();

Однако необходимо, чтобы модал не открывался до перенаправления.

Для решения проблемы

{ // 18
    orphan: true,
    title: "Zakázky",
    content: "Výborně, Vaše první zakázka je založena. Klikněte na její modrý název pro pokračování.",
    path: basePath + '/commission',
    onNext: function () {
        var commissionId = $('.tour-commission-detail').first().data('id');
        if( ! commissionId )
        {
            alert('Nejdříve musíte založit aspoň jednu zakázku');
            tour.prev();
            return;
        }
        document.location.href = basePath + '/commission/overview/' + commissionId;
        return (new jQuery.Deferred()).promise();
    },
    onHidden: function(tour) {
        tour.setCurrentStep(18);
    }
},
{ // 19
},
{ // 20
    orphan: true,
    title: "Zakázky",
    content: "Nyní se nacházíte na přehledu zakázky. Vidíte zde všechny základní informace. <br>V dalších krocích doplníme " +
        "na zakázku zaměstnance, materiál a další náklady."
}

Объяснение

Функция onHidden помечает шаг 18 как текущий, предотвращая его повторение. Однако это приводит к пропуску шага (в данном случае, шага 19).

Затем мы оставляем шаг 19 пустым, как в примере выше, поэтому при нажатии кнопки «Назад» будет найден шаг 19 пустым и пропущен, переходя к шагу 18.

...