Jquery-Mootools冲突

我一直试图让2个脚本(1个mootol和1个jquery)在同一页面上工作无济于事。我正在研究很多论坛,但我仍然无法让2个同时工作。

这是它在我的标题中的样子:

<script type="text/javascript" src="/wp-content/plugins/buddypress/bp-themes/bp-default/js/jquery-1.4.2.min.js">  jQuery.noConflict(); $(document).ready(function () { var hide = false; $("#posts-menu, .submenu").hover(function(){ if (hide) clearTimeout(hide); $(".submenu").fadeIn(); }, function() { hide = setTimeout(function() { $(".submenu").fadeOut("slow"); }, 250); }); })(jQuery);  <script type="text/javascript" src="/wp-content/plugins/buddypress/bp-themes/bp-default/js/mootools-core-1.3.2.js"> <script type="text/javascript" src="/wp-content/plugins/buddypress/bp-themes/bp-default/js/mootools-more-1.3.1.1.js"> <script type="text/javascript" src="/wp-content/plugins/buddypress/bp-themes/bp-default/js/wall.js"> <script type="text/javascript" src="/wp-content/plugins/buddypress/bp-themes/bp-default/js/wall-lide.js">    

我管理mootools脚本工作,即使是jquery.js调用…你可以看到我已经使用了jQuery.noConflict(); 在第3行..

问题是,如果jquery.noconflict存在,但moquool脚本无效,但jquery脚本不起作用! 现在如果删除jquery.noconflict它现在反过来,jquery脚本工作但不是mootool脚本..我只是无法使其中的2个工作!

任何forms的帮助将不胜感激..

问题是你没有在匿名函数中包含jQuery代码。 试试这个:

 (function($){ // inside here $ will always mean jQuery $(document).ready(function () { var hide = false; $("#posts-menu, .submenu").hover(function(){ if (hide) clearTimeout(hide); $(".submenu").fadeIn(); }, function() { hide = setTimeout(function() { $(".submenu").fadeOut("slow"); }, 250); }); }); })(jQuery); 

noConflict模式下运行时,不能使用$ convenience方法。 你必须使用完整forms的jQuery

 jQuery.noConflict(); // Do something with jQuery jQuery("div p").hide(); // Do something with another library's $() $("content").style.display = 'none'; 

请避免使用2 js库,因为它会增加您的页面加载时间,从而产生SEO影响(负面影响)。

从MooTools的角度来看。

你在jQuery之后加入了MooTools。 非常好。 因为(如果你不使用jQuery.noConflict),MooTools会看到$已被其他人使用并将保持原样。

您必须在MooTools脚本中用document.id()替换$ function。

jQuery有这种noConflict模式。 使用它时,你必须用jQuery()替换jQuery中的$函数。

您可以替换出现的事件,也可以使用匿名函数在脚本中保留对$的引用,并使其成为MooTools的document.id()或jQuery的jQuery()的别名。

 (function($) { // $ will refer to MooTools' document.id() in this anonymous function // ... })(document.id); (function($) { // $ will refer to jQuery's jQuery() in this anonymous function // ... })(jQuery); 

对jQuery部分使用jQuery (区分大小写)而不是$

你破坏了$

  

您可以尝试在MooTools库之前包含jQuery库。

该文件应该更好地说明