1

我是西班牙人(对不起我的英语),这是我第一次在这里写信问一些问题。

经过数小时的调试和搜索 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

谢谢

4

3 回答 3

3

Simply use this way.

Open the wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js

Add on top:

jQuery.noConflict (jquery_working =! html bind);

Go to line #1264
Add this below:

;(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.

Similarly you can resolve the jQuery Cookie plugin conflict error.

于 2012-04-07T08:17:54.630 回答
1

这不是你使用的方式jQuery.noConflict()noConflict()释放对$符号的控制。不过,从我从您的其他脚本中看到的情况来看,它们使用安全方式 ( (function($){ }(jQuery))),因此使用noConflicts()没有实际效果。

改变这个

var jq = jQuery.noConflict ();

进入这个:

jQuery.noConflict ();
var jq = jQuery;

确保;确定。

文档:http ://api.jquery.com/jQuery.noConflict/

于 2011-04-25T22:01:04.193 回答
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 插件中获取了这些库,现在一切正常。谢谢!

于 2011-04-26T14:37:18.190 回答