2011-07-18 55 views
0

好的,我使用mootools通过谷歌地图显示Flash内容,并努力使其正常工作,因此很少有机会将其切换到jQuery。另一方面,我发现jQuery对其他所有东西都更有用,所以我试图让它一起工作。这是为了解释。现在这里是代码。jquery和mootools冲突 - 一个脚本工作,另一个不要

这个jQuery脚本我用它来显示/隐藏动画,并将它与MooTools的完美

<script type="text/javascript"> 
jQuery(document).ready(function() { 
// hides the slickbox as soon as the DOM is ready 
jQuery('#slickbox').hide(); 
// toggles the slickbox on clicking the noted link 
    jQuery('#slick-toggle').click(function() { 
    jQuery('#slickbox').toggle(400); 
    return false; 
    }); 
}); 

工作最近,我加scrit动画菜单流,我无法得到它的工作。我试图应用noConflict,但没有奏效。下面是代码:

<script language="text/javascript"> 
var $j = jQuery.noConflict(); 
var name = "#floatMenu"; 
var menuYloc = null; 
    $j(document).ready(function(){ 
     menuYloc = parseInt($j(name).css("top").substring(0,$j(name).css("top").indexOf("px"))) 
     $j(window).scroll(function() { 
      offset = menuYloc+$(document).scrollTop()+"px"; 
      $j(name).animate({top:offset},{duration:500,queue:false}); 
     }); 
    }); 
</script> 

错误信息遗漏的类型错误:对象#有没有方法“处置” 非常感谢你。

+0

你还在'$(document)'中使用$ –

+0

我编辑了我的文章并添加了错误消息。你是对的Dr.Molle,我修正了它,但仍然是同样的问题。 – culter

回答

2

以这种方式格式化您的代码,并且有 无需使用 noConflict()在加载jQuery和MooTools库之后调用jQuery.noConflict();

<script type="text/javascript"> 
(function($){ 
    var name = "#floatMenu", 
     menuYloc = null; 
    $(document).ready(function(){ 
     menuYloc = parseInt($(name).css("top").substring(0,$(name).css("top").indexOf("px"))) 
     $(window).scroll(function() { 
      var offset = menuYloc+$(document).scrollTop()+"px"; 
      $(name).animate({top:offset},{duration:500,queue:false}); 
     }); 
    }); 
})(jQuery); 
</script> 

这会将您的代码封装到函数中,该函数将传递jQuery对象。您在该功能中使用$的任何地方都会参考jQuery

此外,没有属性language的值为"text/javascript",它是type属性,它应该具有该值。不要再使用language属性。

+0

谢谢,Shef。不幸的是,它不会工作。 jQuery部分工作正常,但mootools没有。仍然是相同的错误信息。我已经用你的代码在这里上传了它:http://www.turie.eu/hlavna3 – culter

+0

mootools部分我的意思是当你点击地图上的双目图标时,它必须显示lightbox克隆(bumpbox)窗口。我已经在这里尝试了所有的技巧http://docs.jquery.com/Using_jQuery_with_Other_Libraries,但没有任何适用于我。再次感谢你! – culter

+0

好的,更新了我的答案。你应该在两个库加载后立即调用'jQuery.noConflict();'。 – Shef