6

我一直在将 MailChimp 集成到我正在设计的网站中度过最糟糕的时光!

问题是验证不适用于嵌入式订阅表单。该表单不是内联错误消息,而是将用户踢到 MailChimp 注册页面以纠正错误或确认列表选择加入。

我已经对代码进行了大量的自定义,所以很遗憾回到默认值不是一个选项。

这是我遇到的错误,但我是 JS n00b,所以我不知道它们是什么意思:

未定义错误 mce_jQuery 时中断:

屏幕截图 2010-08-22 上午 4.34.50.jpg

我不认为这是一个可以用控制台捕获的错误。

奇怪的是这个。如果我撕掉自定义代码并从 MailChimp 发布静态代码,它会以某种方式工作,但我已经复制了所有具有重要功能的相关代码,但仍然没有骰子。

您可以在以下位置查看该网站:http ://ranya.net/wp/contact

MailChimp 列表注册位于右上角的滑动下拉列表中。相关脚本在 div#top_mailing 之后嵌入。

4

5 回答 5

4

或者你可以简单地在 mailChimp.js 中重命名这个变量:

var mce_jQuery = jQuery.noConflict();

var mce_jQuery = jQuery;

不知道为什么 MailChimp 开发人员决定用一种方法重写美元符号。

于 2012-02-08T12:34:56.107 回答
2

Alec Smart 的回答几乎是正确的。通过在 NoConflict 模式下运行 jQuery,问题得到了解决。Alec 建议我添加 jQuery.noConflict(); 在文档的标题中。事实证明,MailChimp 嵌入代码中有一行被注释掉了。为了正确启用 MailChimp 脚本的 noConflict 模式,请搜索

 //var mce_jQuery = jQuery.noConflict();

删除评论,使其看起来像这样

 var mce_jQuery = jQuery.noConflict();

然后你应该好好去!:)

于 2010-08-22T19:18:06.487 回答
2

截至 2013 年 5 月 28 日,使用 jquery 1.8.1 和最新的 mailchimp 代码

我找不到上面的评论来取消评论。

但是我可以看到这个 mailchimp 代码:

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

我对此的理解不是很好,但这会重新分配默认的 jquery $ 变量。

然而,后来在代码中有这样的:

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

这使mailchimp代码绊倒了

我把它改成

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

它有效。不太清楚为什么(并且会喜欢解释!)但我想我会发布,因为有人可能会像我一样遇到这个问题。

于 2013-05-28T19:36:22.117 回答
2

我对上述任何解决方案都没有运气,可能是因为最后一个答案已有一年多的历史,并且不再反映当前的 mailchimp 代码。

为了解决我的 jQuery 冲突,我从http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.jsmc-validate.js复制了MailChimp 提供的脚本并将其放在我们自己的服务器上。然后我美化了它并从文件中删除了jquery代码。这样,现在我们的服务器上只剩下我们的 jquery 版本,并且不再有任何冲突。

看起来,你也不再需要这条线var $mcj = jQuery.noConflict(true);了。

@mailchimp:这个问题的一个很好的解决方案是如果你可以在你的亚马逊服务器上提供不同版本的代码,不包括 jquery。

于 2014-12-08T11:06:13.547 回答
1

尝试将此代码移到顶部的右侧(例如紧跟在<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>
于 2010-08-22T08:48:20.543 回答