2011-01-10 9 views
0

Ich benutze eine Mailchimp E-Mail-Anmeldung auf meiner Website & Ich frage mich, ob es eine einfache Möglichkeit gibt, die 'warten auf Ihre Bestätigung' div nach 5 Sekunden, so dass es nicht nur dort sitzen Oder erfordert der Benutzer, auf eine andere Seite zu klicken, um sie zu entfernen?Mailchimp Anmeldung Erfolg verblassen/verbergen

Jede Hilfe wäre großartig.

Der js Code ist unten:

var fnames = new Array(); 
var ftypes = new Array(); 
fnames[0] = 'EMAIL'; 
ftypes[0] = 'email'; 
fnames[1] = 'FNAME'; 
ftypes[1] = 'text'; 
fnames[2] = 'LNAME'; 
ftypes[2] = 'text'; 
var err_style = ''; 
try { 
    err_style = mc_custom_error_style; 
} catch (e) { 
    err_style = ''; 
} 
var mce_jQuery = jQuery.noConflict(); 
mce_jQuery(document).ready(function ($) { 
    var options = { 
     errorElement: 'div', 
     errorStyle: err_style, 
     onkeyup: function() {}, 
     onfocusout: function() {}, 
     onblur: function() {} 
    }; 
    var mce_validator = mce_jQuery("#mc-embedded-subscribe-form").validate(options); 
    options = { 
     url: 'http://wordpress.us2.list-manage.com/subscribe/post-json?u=d758d569eedf27b4c753c5997&id=62def7407f&c=?', 
     type: 'GET', 
     dataType: 'json', 
     contentType: "application/json; charset=utf-8", 
     beforeSubmit: function() { 
      mce_jQuery('#mce_tmp_error_msg').remove(); 
      mce_jQuery('.datefield', '#mc_embed_signup').each(function() { 
       var txt = 'filled'; 
       var fields = new Array(); 
       var i = 0; 
       mce_jQuery(':text', this).each(function() { 
        fields[i] = this; 
        i++; 
       }); 
       mce_jQuery(':hidden', this).each(function() { 
        if (fields[0].value == 'MM' && fields[1].value == 'DD' && fields[2].value == 'YYYY') { 
         this.value = ''; 
        } else if (fields[0].value == '' && fields[1].value == '' && fields[2].value == '') { 
         this.value = ''; 
        } else { 
         this.value = fields[0].value + '/' + fields[1].value + '/' + fields[2].value; 
        } 
       }); 
      }); 
      return mce_validator.form(); 
     }, 
     success: mce_success_cb 
    }; 
    mce_jQuery('#mc-embedded-subscribe-form').ajaxForm(options); 
}); 

function mce_success_cb(resp) { 
    mce_jQuery('#mce-success-response').hide(); 
    mce_jQuery('#mce-error-response').hide(); 
    if (resp.result == "success") { 
     mce_jQuery('#mce-' + resp.result + '-response').show(); 
     mce_jQuery('#mce-' + resp.result + '-response').html(resp.msg); 
     mce_jQuery('#mc-embedded-subscribe-form').each(function() { 
      this.reset(); 
     }); 
    } else { 
     var index = -1; 
     var msg; 
     try { 
      var parts = resp.msg.split(' - ', 2); 
      if (parts[1] == undefined) { 
       msg = resp.msg; 
      } else { 
       i = parseInt(parts[0]); 
       if (i.toString() == parts[0]) { 
        index = parts[0]; 
        msg = parts[1]; 
       } else { 
        index = -1; 
        msg = resp.msg; 
       } 
      } 
     } catch (e) { 
      index = -1; 
      msg = resp.msg; 
     } 
     try { 
      if (index == -1) { 
       mce_jQuery('#mce-' + resp.result + '-response').show(); 
       mce_jQuery('#mce-' + resp.result + '-response').html(msg); 
      } else { 
       err_id = 'mce_tmp_error_msg'; 
       html = '<div id="' + err_id + '" style="' + err_style + '"> ' + msg + '</div>'; 
       var input_id = '#mc_embed_signup'; 
       var f = mce_jQuery(input_id); 
       if (ftypes[index] == 'address') { 
        input_id = '#mce-' + fnames[index] + '-addr1'; 
        f = mce_jQuery(input_id).parent().parent().get(0); 
       } else if (ftypes[index] == 'date') { 
        input_id = '#mce-' + fnames[index] + '-month'; 
        f = mce_jQuery(input_id).parent().parent().get(0); 
       } else { 
        input_id = '#mce-' + fnames[index]; 
        f = mce_jQuery().parent(input_id).get(0); 
       } 
       if (f) { 
        mce_jQuery(f).append(html); 
        mce_jQuery(input_id).focus(); 
       } else { 
        mce_jQuery('#mce-' + resp.result + '-response').show(); 
        mce_jQuery('#mce-' + resp.result + '-response').html(msg); 
       } 
      } 
     } catch (e) { 
      mce_jQuery('#mce-' + resp.result + '-response').show(); 
      mce_jQuery('#mce-' + resp.result + '-response').html(msg); 
     } 
    } 
} 

Antwort

0

Die Javascript-Funktion setTimeout Code nach einem festgelegten Zeitraum (in Millisekunden) ausgeführt wird. Das ist in der Regel das, wonach Sie suchen ...

setTimeout ("$ (" # id_of_div "). FadeOut();", 5000);

Hier ist ein Link zur Funktion jQuery API fadeOut.

http://api.jquery.com/fadeOut/

+0

Das scheinen würde den Trick zu tun, ich habe keine Ahnung, wo oder wie es in dem obigen Code korrekt ist. – Mike

+0

Ich weiß nicht genug über die Mailchimp-API, um zu wissen, was hier vor sich geht. Ich würde in der Funktion "function mce_success_cb (resp)" starten und beginnen, Warnmeldungen hinzuzufügen, um den Ort zu finden, an dem das "Warten auf Bestätigung" div aktiviert ist. Ich sehe einige jQuery-Anweisungen, die das DOM aktualisieren. .append(), .show() und .html() ändern das Aussehen der Seite in irgendeiner Weise. Werfen Sie einige Warnmeldungen (Alert ("Testnachricht");) hinein, um zu sehen, wann sie ausgeführt werden. Wenn Sie den Punkt gefunden haben, an dem Sie den 5-Sekunden-Timer starten möchten, geben Sie dort den setTimeout-Code ein. – BZink