Josh
Josh

Reputation: 161

I need to display jquery popup only once with a function onload

I need to display jquery popup only once with a function onload. This is my popup with a window.onload function delay and to addclass is-visible, however I'm looking to add a cookie function so the popup will only load once per browser or cache.

Any suggestions would be fantastic! - J query & html in code

    jQuery(document).ready(function($){

  window.onload = function (){
    jQuery(".bts-popup").delay(1000).addClass('is-visible');
    }

    //open popup
    jQuery('.bts-popup-trigger').on('click', function(event){
        event.preventDefault();
        jQuery('.bts-popup').addClass('is-visible');
    });

    //close popup
    jQuery('.bts-popup').on('click', function(event){
        if( jQuery(event.target).is('.bts-popup-close') || jQuery(event.target).is('.bts-popup') ) {
            event.preventDefault();
            jQuery(this).removeClass('is-visible');
        }
    });
    //close popup when clicking the esc keyboard button
    jQuery(document).keyup(function(event){
        if(event.which=='27'){
            jQuery('.bts-popup').removeClass('is-visible');
        }
    });
});
   

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="bts-popup" role="alert">
        <div class="bts-popup-container">
            <div id="contact-form">
                    <form method="post" action="">
                        <input type="hidden" name="form_uid" value="e880e632-8e7c-4b51-8928-b63cd1b6cdb5">
                        <ul>
                            <li class="namefield">
                                <input name="name" type="text" class="name" placeholder="Your Name">
                            </li>
                            <li class="emailfield">
                                <input name="submit_by" type="text" class="email-contact" placeholder="Your Email">
                            </li>
                            <li class="telfield">
                                <input name="telephone" type="text" class="phone" placeholder="Contact Number">
                            </li>
                            <li class="commentsfield">
                                <textarea name="comments" class="query" placeholder="How Can We Help?"></textarea>
                            </li>
                            <li>

                            </li>

                            <li> 
                                <input name="submit-button" type="submit" value="Submit" class="submit">
                                <p class="gdpr-small">*By clicking ‘submit’ you are consenting to us replying, and storing your details. (see our <a href="">privacy policy</a>).</p>
                            </li>
                        </ul>
                        <input type="hidden" name="required" value="name,submit_by,telephone,comments">
                        <input type="hidden" name="data_order" value="name,submit_by,telephone,comments,marketing-opt-in">
                        <input type="HIDDEN" name="automessage" value="mymessage">
                        <input name="ok_url" type="hidden" value="">
                        <input name="not_ok_url" type="hidden" value="">
                    </form>
                </div>
            <a href="#0" class="bts-popup-close"><i class="fa fa-times-circle"></i></a>
        </div>
    </div>

Upvotes: 0

Views: 854

Answers (1)

Loris
Loris

Reputation: 101

How to simple manage cookies, i think you can watch here: link

I think it's pretty simple (pseudo-code):

if (getCookie("popup") doesnt exist OR is set to 0)
  showPopup();
  setCookie("popup",1);
else
  destroyPopup();
endif

You can use this simple way to handle multiple popoups too.

If you use PHP, you can use $_COOKIE instead of a javascript function.

Hope it helps.

Upvotes: 1

Related Questions