微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-在script.aculo.us中使用jQuery noConflict()

我有一个使用“小部件”(来自http://healcode.com)的站点,其中包括script.aculo.us JavaScript库.问题是我正在构建的网站位于wordpress上,因此存在经典的jQuery与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.

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

jQuery(document).ready(function () {

    //#nav-main dropdown effects

    jQuery('#nav-main ul li').hoverIntent(function () {
        jQuery(this).find('.dropdown').stop(true,true).slideDown('900'); },
            function(){
                jQuery(this).find('.dropdown').stop(true,true).slideUp('500');
        });
}); // end document.ready

编辑

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

未捕获的TypeError:对象#< HTMLDocument>没有方法“ ready”(匿名函数),因此document.ready失败,因为它已分配给jQuery,因此无法正确加载…

编辑2

以下两个(在此更新时)发布的答案都无法解决我所遇到的问题.也许它们在技术上是正确的,但它们不能解决我的问题.

解决方法:

这对我有用,因此我可以让jQuery和script.aculo.us / Prototype一起很好地工作.此救生员的积分归功于codeimpossible

代替:

jQuery(document).ready(function () {

    // Code to run on DOM ready

}); // End document.ready

尝试这个:

( function($) {

    // Code to run on DOM ready

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐