Mailchimp jQuery冲突
-
30-09-2019 - |
题
我已经有最糟糕的时间将MailChimp整合到我正在设计的网站中!
问题在于验证不适用于嵌入式订阅表格。该表单没有插入错误消息,而是将用户踢到MailChimp Inbicup页面以纠正错误或确认列表选择。
我对代码进行了大量自定义,因此不幸的是,返回默认值不是一个选择。
这是我遇到的错误,但是我是JS N00B,所以我不知道它们的意思:
打破错误MCE_JQUERY未定义:
我认为这不是可以被控制台捕获的错误。
奇怪的是这个。如果我删除自定义代码,并且只需以某种方式发布MailChimp的静态代码,但是我已经复制了具有重要功能的所有相关代码,但仍然没有骰子。
您可以在以下网站上查看网站: http://ranya.net/wp/contact
MailChimp列表注册在右上角滑动下拉列表中。相关脚本在Div#top_mailing之后嵌入。
解决方案 5
Alec Smart的答案几乎是正确的。通过在Noconflict模式下运行jQuery,解决了问题。 Alec建议我添加jQuery.noconflict();在文档的标题中。事实证明,MailChimp嵌入式代码中有一条线条。为了正确启用MailChimp脚本的Noconflict模式搜索
//var mce_jQuery = jQuery.noConflict();
删除评论,以便看起来像这样
var mce_jQuery = jQuery.noConflict();
然后你应该很好! :)
其他提示
或者,您只需在MailChimp.js中重命名此变量:
var mce_jQuery = jQuery.noConflict();
到
var mce_jQuery = jQuery;
不知道为什么MailChimp开发人员决定使用一种方法重写美元标志。
截至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();
它有效。不太确定为什么(并且会喜欢解释!),但是以为我会以与我相同的方式遇到这个问题时发布。
我对上述任何解决方案都没有运气,这可能是因为最后一个答案已经超过一年了,并且不再反映当前的MailChimp代码。
为了解决我的贾格里冲突,我复制了 mc-validate.js
MailChimp提供的脚本 http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js 并将其放在我们自己的服务器上。然后,我将其美化并从文件中删除了jQuery代码。这样,现在只有我们的jQuery版本留在服务器上,而是没有任何冲突了。
看起来,您也不需要该行 var $mcj = jQuery.noConflict(true);
再过了。
@mailchimp:解决此问题的一个很好的解决方案是,如果您只能在Amazon服务器上提供其他版本的代码,则不包括JQuery。
尝试将此代码移至顶部(例如 <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>