Mailchimp的$ mcj = jQuery.noConflict(true)导致冲突

ORB*_*ORB 15 jquery mailchimp

我正在尝试将MailChimps的标准html表单集成到我的网站中.但是,我的网站有一些jquery代码遇到了MailChimp代码的问题.

以下代码是MailChimp嵌入式表单的一部分:

<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-  validate.js'></script>
<script type='text/javascript'>
(function($) {
window.fnames = new Array(); window.ftypes = new   Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';
}(jQuery));
var $mcj = jQuery.noConflict(true);
</script>
Run Code Online (Sandbox Code Playgroud)

'.... mailchimp.com/js/mc-validate.js'与我的Google API for jquery冲突,所以我拿出了mailchimp的jquery激活.

我的问题是:

  1. 我必须在我的.html代码中使用mailchimp /mc-validate.js行来运行表单,还是我可以依赖

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js'> </script>

  1. 如果我删除本机mailchimp jquery行并依赖googleapi行,我遇到了$mcj=jQuery.noConflict(true)代码问题 .

基本问题是:有没有人有将Mail Chimp集成到他们的网站并使用jQuery遇到这些类型问题的经验?

期待您的回答.

Ed *_*yed 1

我知道你问这个问题已经过去 3 个月了,但如果其他人也遇到同样的问题,这里有一个解释。

为了响应下面的评论,我创建了一个简单的 html 示例,其中包含指定的 jquery 版本和经典的 mailchimp 表单。如您所见,没有抛出任何错误。(http://thepixel.ninja/lab/mailchimp-signup-form/)。

您收到的错误很可能是由页面上的其他脚本引起的。不过,如果没有您提供更多信息,就不可能说。

如果您不太了解调试,这里是一些简单修复的细分以及可能发生的情况的解释。

  1. 我的 .html 代码中是否必须有 mailchimp /mc-validate.js 行才能运行表单,或者我可以依赖吗

<脚本src =' http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js '>?

这是两个不同的脚本。一种是 jQuery 本身,另一种是 mailchimp 验证代码。如果您需要来自 mailchimp 的 js 验证,则不需要 /mc-validate.js 行。如果这是演员阵容,请按照以下说明进行操作。不要只是删除这一行并希望一切都会好起来。

注意。如果您不需要验证代码,那么您可以在 mailchimp 网站上创建表单时勾选“禁用所有 JavaScript”复选框。这将消除所有 js 错误。(您也可以选择“裸表单”而不是“经典表单”,然后使用 css 设计表单的样式,使其看起来像您想要的那样)。

  1. 如果我确实删除了本机 mailchimp jquery 行并依赖 googleapi 行,则会遇到 $mcj=jQuery.noConflict(true) 代码的问题。

如上所述。它们是两个不同的脚本。你不能删除一个并依赖另一个,因为它们做完全不同的事情。

话虽如此,mailchimp 脚本不应与 jquery 发生任何冲突。我已经使用过 mailchimp 表单和 jquery 数百次,但从来没有遇到过问题。(请参阅上面的链接)如果您以任何方式编辑了提供给您的 mailchimp html 片段,或者您在页面上包含的其他 javascript 中存在其他错误,则可能会出现此问题。

希望这可以帮助人们通过消除过程找出他们遇到的问题。

  • 并不能解决问题。当问题实际上是一个问题时,却将其视为“没有问题”而忽略它。 (4认同)