我是西班牙语(对不起我的英语),这是我第一次在这里写点什么。
经过数小时的调试和搜索,为什么Fancybox脚本无法正常工作,我搜索了我网站上两个脚本之间的冲突(现在处于维护模式)
我在我的网站上使用了一些脚本,但我可以肯定地说我在这两个脚本之间存在冲突:
http://www.planetdescargas.com/wp-content/themes/bigfoot/javascripts/jquery.mousewheel-3.0.4.pack.js
http://www.planetdescargas.com/wp-content/themes/bigfoot/javascripts/jquery.fancybox-1.3.4.pack.js
和
http://www.planetdescargas.com/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js?ver=3.0.5
前两个脚本是jquery“fancybox”的插件,另一个是wordpress插件的主要javascript(Ajax):BuddyPress。
后者在fancybox中产生冲突。如果我删除BuddyPress的脚本,fancybox可以很好地工作,但如果没有,fancybox就不起作用。
BuddyPress'脚本,global.js在开头定义了一个变量,该变量是制作脚本的变量。 我尝试用这种方式定义它:
var jq = jQuery.noConflict();
但仍然没有工作。
有什么建议吗?
在Firebug控制台中我得到了这个:
c.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || a] is not a function
[Detener en este error] e,this.options.orig [e]); this.options.c ... ++)ab || a.splice(b - ,1); a.length | |
的第143行
http://www.planetdescargas.com/wp-includes/js/jquery/jquery.js?ver=1.4.2
由于
答案 0 :(得分:3)
只需使用这种方式。
打开wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js
添加到顶部:
jQuery.noConflict (jquery_working =! html bind);
转到#1264 行 在下面添加:
;(function(jQuery){ ///Add this before start jQuery.easing.
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing, {def:"easeOutQuad",swing:function(e,f,a,h,g){return ......
// ...
})(jQuery); //Add this end of the call.
同样,您可以解决jQuery Cookie插件冲突错误。
答案 1 :(得分:1)
这不是你使用jQuery.noConflict()
的方式。 noConflict()
释放对$
符号的控制权。从我从其他脚本中看到的,他们使用安全的方式((function($){ }(jQuery))
),因此使用noConflicts()
没有实际效果。
更改此
var jq = jQuery.noConflict ();
进入这个:
jQuery.noConflict ();
var jq = jQuery;
确保。
答案 2 :(得分:0)
我不知道出了什么问题,但我解决了这个问题。我在我的主题根目录中的functions.php中使用了这段代码:
function fancybox_js() {
wp_enqueue_script('jquery.fancybox', 'http://www.planetdescargas.com/wp-content/themes/bigfoot/javascripts/fancybox/jquery.fancybox-1.3.4.pack.js', array('jquery'), '1.3.4');
wp_enqueue_script('jquery.easing', 'http://www.planetdescargas.com/wp-content/themes/bigfoot/javascripts/fancybox/jquery.easing-1.3.pack.js', array('jquery'), '1.3');
wp_enqueue_script('jquery.mousewheel', 'http://www.planetdescargas.com/wp-content/themes/bigfoot/javascripts/fancybox/jquery.mousewheel-3.0.4.pack.js', array('jquery'), '3.0.4');
}
add_action('wp_enqueue_scripts', 'fancybox_js', 999);
我从名为Easy Fancybox的wordpress插件中获取了库,现在一切正常。谢谢!