2015-04-17 8 views
6

Podążałem za this tutorial, aby zaimplementować wyskakujący biuletyn z biuletynem e-mail, aby dodać do mojego motywu Shopify, który używa fancybox.js & cookie.js. Wszystko działa dobrze, z wyjątkiem sytuacji, gdy wpisujesz adres e-mailowy &, klikając przycisk "Zarejestruj się", mimo że otwiera się dodatkowa karta, aby ukończyć proces rejestracji Mailchimp, na oryginalnej karcie sklepu, okno wiadomości e-mail pozostaje otwarte, jakby nic się nie zmieniło.Zanikanie wyskakującego okna po kliknięciu przycisku?

Zastanawiam się, czy istnieje sposób, w jaki mogę dostosować kod tak, aby po kliknięciu "Zarejestruj się" nowa karta otwiera się normalnie, ale wyskakujące okienko wiadomości e-mail zanika, więc gdy użytkownik wraca do sklepu, pop - zniknął. Nie jestem świetny w JS, więc każda pomoc będzie naprawdę doceniona!

mój bieżący kod:

theme.liquid -

Ciecz HTML:

{% if settings.popup_newsletter_enable %} 
    <div id="email-popup" style="display: none;" > 
    {% include 'popup-newsletter-form' %} 
    </div> 

    <a href="#email-popup" id="trigger"></a> 
{% endif %} 

JS:

{{ 'jquery.fancybox.js' | asset_url | script_tag }} 

<script type="text/javascript"> 
    (function($) { 
    // set a variable for the cookie check 
    var check_cookie = $.cookie('popup_box'); 

    // check whether the cookie is already set for this visitor 
    if(check_cookie != 'active'){ 
     // if the cookie does not exist do the following: 

     // (1) set the cookie so it's there for future visits (including an expiration time in days) 
     $.cookie('popup_box', 'active', { 
     expires: 3, 
     path: '/' 
     }); 

     // (2) trigger the fancybox pop up, specifying that it's inline 
     $('#trigger').fancybox({ 
     type: 'inline', 
     }); 
     setTimeout(function() { 
     $('#trigger').eq(0).trigger('click'); // make the click event happen on load 
     }, 5000); 
    } 
    })(jQuery); // this is a noconflict wrapper for WP 
</script> 

popup-Newsletter-form.liquid (fragment obejmuje) :

Płyn HTML:

<!-- Mailchimp Form Integration --> 
{% if settings.newsletter_form_action != blank %} 
    {% assign form_action = settings.newsletter_form_action %} 
{% else %} 
    {% assign form_action = '#' %} 
{% endif %} 
<form action="{{ form_action }}" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" target="_blank" class="input-group"> 
    <input type="email" value="{% if customer %}{{ customer.email }}{% endif %}" placeholder="{{ 'general.newsletter_form.newsletter_email' | t }}" name="EMAIL" id="mail" class="input-group-field" aria-label="{{ 'general.newsletter_form.newsletter_email' | t }}" autocorrect="off" autocapitalize="off"> 
    <span class="input-group-btn"> 
    <input type="submit" class="btn" name="subscribe" id="subscribe" value="{{ 'general.newsletter_form.submit' | t }}"> 
    </span> 
</form> 

Odpowiedz

1
$('#pro_image').click(function(){ 
     $("#pro_image").fancybox({ 
      closeSpeed : 250, 
      closeEasing : 'swing', 
      closeOpacity : true, 
      closeMethod : 'zoomOut', 
    }); 
    }) 

;

Wypróbuj tę.

+0

tak, właśnie podałem ci kod do fantazyjnego zamknięcia. – Tanmoy

+0

Przepraszam za błąd. – Tanmoy

+0

Mam edytować kod na to, może pomóc. – Tanmoy

0

Zwykle umieszczają js wewnątrz nagłówka, możliwe jest również umieszczenie go w dowolnym miejscu wewnątrz znacznika, ale mówią, że lepiej umieścić go na dole kodu (wewnątrz), aby umożliwić otrzymanie całego kodu przez przeglądarkę i wykonanie js.

Powiązane problemy