2011-01-10 10 views
0

私のサイトでmailchimp電子メールのサインアップを使用しています& 5秒後に '確認を待つ' divを消すための簡単な方法があるかどうか疑問に思っています。ユーザーが別のページをクリックして削除する必要がありますか?Mailchimp signup success fade/hide

助けがあれば助かります。

ザ・jsのコードは以下の通りです:

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); 
     } 
    } 
} 

答えて

0

JavaScriptのsetTimeout関数は(ミリ秒単位)一定期間の後に、あなたのコードを実行します。これは一般的にあなたが探しているものです...

setTimeout( "$("#id_of_div ").fadeOut();"、5000);

ここにjQuery API fadeOut関数へのリンクがあります。トリックを行うように思われる

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

+0

は、私は正確に上記のコードでそれを含めるか、どのようには考えています。 – Mike

+0

私はここで何が起こっているのかを知るためにmailchimp APIについて十分に知りません。私は "function mce_success_cb(resp)"関数から開始し、 "確認待ち" divがアクティブになっている場所を見つけるために警告メッセージを追加し始めます。私は、DOMを更新しているいくつかのjQueryステートメントを見ています。 .append()、.show()、および.html()はいずれもページの外観を何らかの形で変更しています。そこにいくつかの警告メッセージ(alert( "test message");)を投げて、実行時を確認してください。 5秒タイマーを開始するポイントを見つけたら、そこにsetTimeoutコードを挿入します。 – BZink

関連する問題