Domanda

Ho avuto il momento più terribile integrazione MailChimp in un sito Sto progettando!

Il problema è che la convalida non funziona per il modulo incorporato iscriversi. Invece di inlining messaggi di errore, la forma è calci l'utente verso la pagina del MailChimp di registrazione per correggere gli errori o lista confermano opt-in.

Ho fatto una quantità pesante di personalizzazione per il codice, in modo purtroppo tornare al default non è un'opzione.

Qui sono gli errori che sto ricevendo, ma io sono un n00b JS quindi non so che cosa significano:

Break on errore mce_jQuery non è definito:

Colpo di schermo 2010-08-22 al 4.34.50 AM.jpg

Non credo che sia un errore che può essere catturato con la console però.

La cosa strana è questa. Se io strappare il codice personalizzato e basta inviare il codice statico da MailChimp funziona in qualche modo, ma ho copiato tutto il codice in questione con le funzioni importanti e ancora nessun dadi.

È possibile visualizzare il sito live all'indirizzo: http://ranya.net/wp/contact

La lista di iscrizione MailChimp è nell'angolo in alto a destra a tendina scorrevole. Gli script rilevanti sono inseriti subito dopo div # top_mailing.

È stato utile?

Soluzione 5

La risposta di Prezzemolo era quasi corretto. Eseguendo jQuery in modalità noConflict il problema è stato risolto. Alec ha suggerito che aggiungo jQuery.noConflict (); nell'intestazione del documento. Si scopre che c'è una riga nel MailChimp incorporare codice che viene commentata. Per abilitare correttamente la modalità noConflict per la ricerca di script MailChimp per

 //var mce_jQuery = jQuery.noConflict();

Rimuovi il commento in modo che assomiglia a questo

 var mce_jQuery = jQuery.noConflict();

e quindi si dovrebbe essere pronti per partire! :)

Altri suggerimenti

Oppure si può semplicemente basta rinominare questa variabile nelle mailChimp.js:

var mce_jQuery = jQuery.noConflict();

a

var mce_jQuery = jQuery;

Non so il motivo per cui gli sviluppatori hanno deciso di riscrivere MailChimp il dollaro-segno con un metodo.

utilizzando jQuery 1.8.1 e il codice MailChimp tardi a partire del 28 maggio 2013

non riuscivo a trovare il commento sopra per rimuovere il commento di esso.

ho potuto comunque vedere questo codice MailChimp:

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

La mia comprensione di questa non è grande, ma questo riassegna il default jquery $ variabile.

Tuttavia, più tardi nel codice c'era questa:

function mce_success_cb(resp){
$('#mce-success-response').hide()

che è stato inciampare il codice MailChimp up

L'ho cambiato in

function mce_success_cb(resp){
jQuery(document).ready( function($) {
$('#mce-success-response').hide();

e funziona. Non capisco perché (e mi piacerebbe una spiegazione!) Ma ho pensato di postare come qualcuno potrebbe venire attraverso questa domanda nello stesso modo come ho fatto io.

Non ho avuto fortuna con una delle soluzioni di cui sopra, probabilmente perché l'ultima risposta è più di un anno di età e non riflette più il codice MailChimp corrente.

Per risolvere i miei conflitti jQuery, ho copiato lo script mc-validate.js che MailChimp serve da http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js e metterlo sul nostro server. Poi ho abbellito e rimosso il codice jQuery dal file. In questo modo, ora c'è solo la nostra versione di jQuery lasciato sul nostro server e non con il conflitto più.

Come sembra, sarà, inoltre, non ha più bisogno della var $mcj = jQuery.noConflict(true); riga.

@mailchimp:. Una grande soluzione per questo problema sarebbe se si può solo fornire una versione diversa del codice sui server di Amazon, che non include jquery

Provare a spostare il codice a destra in alto (come subito dopo tag <head>):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>jQuery.noConflict();</script>
<script type="text/javascript" src="http://downloads.mailchimp.com/js/jquery.validate.js"></script>
<script type="text/javascript" src="http://downloads.mailchimp.com/js/jquery.form.js"></script>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top