arekk
arekk

Reputation: 230

jQuery set cookie for first visit

I got a script like that (I use jQuery cookie js to set cookies) to display layer on first visit.

<script type="text/javascript">
    $(document).ready(function() {
        var visited = $.cookie('visited', 'yes', { expires: 1, path: '/' });

        if (visited == null) {
            $('.newsletter_layer').show();
            $.cookie('visited', 'yes'); 
            alert($.cookie("visited"));         
        }
    });
</script>

Unfortunatelly something is not working. I think something is wrong with the if statement. Anyone have idea what can be wrong?

Upvotes: 4

Views: 33585

Answers (2)

JDM_trash
JDM_trash

Reputation: 11

If somebody stumbles across this 6 years into the future like I, I got this to work with modification:

Replace: $.cookie -> Cookies

Upvotes: 0

Rory McCrossan
Rory McCrossan

Reputation: 337714

Because you are creating the cookie, it will never be null. You need to change your logic to first check if the cookie exists. If not, show the .newsletter_layer element, then set the cookie value:

<script type="text/javascript">
    $(document).ready(function() {
        // check cookie
        var visited = $.cookie("visited")

        if (visited == null) {
            $('.newsletter_layer').show();
            alert($.cookie("visited"));         
        }

        // set cookie
        $.cookie('visited', 'yes', { expires: 1, path: '/' });
    });
</script>

Upvotes: 16

Related Questions