Javascript 将jQuery noConflict()与script.aculo.us一起使用

Javascript 将jQuery noConflict()与script.aculo.us一起使用,javascript,jquery,wordpress,debugging,Javascript,Jquery,Wordpress,Debugging,我有一个使用“小部件”(来自)的站点,其中包括JavaScript库。问题是我正在构建的站点位于WordPress上,因此存在经典的jQueryvsscript.aculo.us冲突 我知道我需要在.noConflict()模式下运行jQuery,但我一定是把语法弄错了。当我按如下方式将$分配给jQuery.noConflict时,它仍然会关闭script.aculo.us函数: var $ = jQuery.noConflict(); $(document).ready(function (

我有一个使用“小部件”(来自)的站点,其中包括JavaScript库。问题是我正在构建的站点位于WordPress上,因此存在经典的
jQuery
vs
script.aculo.us
冲突

我知道我需要在
.noConflict()
模式下运行jQuery,但我一定是把语法弄错了。当我按如下方式将
$
分配给jQuery
.noConflict
时,它仍然会关闭script.aculo.us函数:

var $ = jQuery.noConflict();

$(document).ready(function () {

    //#nav-main dropdown effects

    $('#nav-main ul li').hoverIntent(function () {
        $(this).find('.dropdown').stop(true,true).slideDown('900'); },
            function(){
                $(this).find('.dropdown').stop(true,true).slideUp('500');
        });
}); // end document.ready
我知道我正在以
.noConflict()
模式将
$
分配给jQuery,并且我假设script.aculo.us(通过主体中的小部件加载,因此在jQuery之后)正在尝试将
$
重新分配回script.aculo.us

我如何将
$
分配给jQuery,以使以后加载的script.aculo.us库不会发生冲突?我已经尝试了以下操作,但没有成功(以下代码导致script.aculo.us工作,但jQuery失败):

编辑

上述代码的调试控制台输出为:

uncaughttypeerror:Object#没有方法“ready”(匿名函数)
因此document.ready失败,因为它被分配给jQuery,而jQuery无法正确加载

编辑2

下面发布的两个答案(在本次更新时)都无法解决我所面临的问题。也许它们在技术上是正确的,但它们没有解决我的问题。

将右键分配回
$
没有任何作用

将jQuery分配给其他变量:

var j$ = jQuery.noConflict();
或者不要将其分配给任何对象:

jQuery.noConflict();
试试这个:

<script src="url to jquery"></script>
<script type="javascript">jQuery.noConflict();</script>
<script src="url to scriptaculous"></script>
( function($) {

    // Code to run on DOM ready

} )( jQuery ); // End document.ready

jQuery.noConflict();

我发现这个解决方案非常令人惊讶

首先,使用
$j=jQuery.noConflict()模式不起作用

第二,调用
jQuery.noConflict()无效

有效的方法是:


奇怪的是,没有自动执行
noConflict
,因此结果是除了上面列出的问题之外,我还需要在
.noConflict()中包装该插件也是。大声说出博客文章的作者,不知道为什么其他
noConflict()调用方法不起作用,但我很高兴我找到了这篇文章。

这对我来说很有效,这样我就可以让jQuery和/原型很好地协同工作。这个救命恩人值得称赞

而不是:

jQuery(document).ready(function () {

    // Code to run on DOM ready

}); // End document.ready
试试这个:

<script src="url to jquery"></script>
<script type="javascript">jQuery.noConflict();</script>
<script src="url to scriptaculous"></script>
( function($) {

    // Code to run on DOM ready

} )( jQuery ); // End document.ready

这两个方案仍然会导致jQuery发生冲突(因此scriptaculous优先,而jQuery函数无法执行)。您能更具体地说明实际发生的情况吗
jQuery
无论发生什么都应该引用jQuery(除非您将
true
传递给.noConflict)。我得到以下错误
Uncaught TypeError:Object#没有方法“ready”(匿名函数)
因此
文档.ready
失败,因为它被分配给了jQuery,这是一个很好的想法,尽管它不起作用:(…在文档头中单独包含它的想法(因为它是WordPress,所以系统可能包含其他依赖于jQuery的插件)这是我没有想到的…谢谢@Marty McGee-我很久以前就发布了这篇文章,好几年没有看到它了-但是你的方法现在是我的默认方法,所以我会标记这个答案。