2013-08-09 4 views
2

Мы хотели бы иметь один общий многостраничный тур, а также специальные туры для веб-приложений. Многостраничный режим функционирует, а специфический для страницы также запускается, но вызывает оба объекта данных тура. Есть ли способ иметь несколько туров на одной странице?Несколько туров с intro.js

function initTours(){ 

// Start intro tour 
document.getElementById('startIntro').onclick = function() { 
    introJs().setOption('doneLabel', 'Next page').start('.intro-farm').oncomplete(function() { 
     window.location.href = 'nav_season.php?multipage=true'; 
    }); 
}; 

var tourStep = $('.content .intro-farm').attr('data-step'); 
var nextLink = $('#nextTourLink').attr('href'); 
if (RegExp('multipage', 'gi').test(window.location.search)) { 
    introJs().setOption('doneLabel', 'Next page').goToStep(tourStep).start('.intro-farm').oncomplete(function() { 
     window.location.href = nextLink+'?multipage=true'; 
    }); 
} 

//Page specific 
if ($('.page-tour').length > 0){ 
    //Page specific tour 
    $('.pageHelp').on('click',function() { 
     introJs().start('.page-tour'); 
    }); 
} else { 
    $('.pageHelp').on('click',function(){ 
     $('#messageModal .row').html("<p>We don't have help tips for this page, but if you are stuck, please don't hesitate to <a href='#'>contact us</a>.</p>") 
     $('#messageModal').foundation('reveal', 'open'); 
    }); 
} 
} 

ответ

0

Конечно, вы можете иметь несколько туров по той же странице, но тогда вы должны проверить URL-адрес страницы и сделать состояние и предотвращение повторного вызова первый тур.

Например предположим, ваша страница boo.php, то для первого тура вы должны проверить, является ли window.location.pathname это равно boo.php или нет, а затем показать первый тур пользователя и после перенаправления на следующую страницу (например boo.php?anotherPage=true) проверки URL страницы снова и показать следующий тур к нему.

0

Возможно, вы захотите определить свои шаги с помощью Programmatic way, чтобы вы могли определить свои шаги по своему усмотрению. Если бы я правильно понял вас, ваши гастроли захватили все шаги, я прав?

0

Посмотрите на следующий код. Он работает нормально.

if (RegExp('multipage', 'gi').test(window.location.search)) { 
    introJs().setOption('doneLabel', 
     'Your next Page &rarr; (Name of Page)').start().oncomplete(function() { 
     window.location.href = 'nextpage.html?multipage=true'; 
    }); 
}