Foundation joyride start only on first load

2019-01-27 08:28发布

问题:

I'm using Foundation Joyride and every time I load the webpage the tour starts, but how do I only start the tour for the first time the webpage is loaded?

My settings are ...

$(window).load(function() {

    //Foundation Joyride (Tour)
    $("#tour").joyride({
        'cookieMonster': true,
        'cookieName': 'JoyRide',
        'cookieDomain': 'mydomain.co.uk/',
        'postRideCallback' : function () {
            $(this).joyride('destroy');
        },
        cookieMonster: false
    });

});

回答1:

Got it working at last and it turned out to be the order in which the header files were declared.

<html>
<head>              
<script type="text/javascript" src="jquery.js"></script>
<link rel="stylesheet" type="text/css" href="foundation.css">
<script type="text/javascript" src="foundation.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript" src="jquery.foundation.joyride.js"></script>      
<script>
    $(window).load(function() {
    $("#tour").joyride({
        cookieMonster: true,
        cookieName: 'JoyRide'
    });
  });
</script>
</head>
<body>
    <ol id="tour">
        <li><p>This is the tour.</p></li>
    </ol>
</body>
</html>


回答2:

You have to use the cookieMonster option se to true, with your domain or false in cookieDomain.

Also remove the cookieMonster: false outside of the parenthesis.

To let joyride use cookies you must include the jQuery.cookie library in your page (https://github.com/carhartl/jquery-cookie)

Here is a sample:

$("#tour").joyride({
    cookieMonster: true,
    cookieName: 'JoyRide',
    cookieDomain: false
});

In this way you'll see the tour only the first time you visit the page (or when you clear the cookies).