我的主页上有Java脚本冲突

时间:2010-06-03 21:01:51

标签: javascript jquery

<script type="text/javascript" src="jquery-1.js"></script>
<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript" src="slideshow.js"></script>
<script type="text/javascript">  
 //<![CDATA[
   window.addEvent('domready', function(){
     var data = {
       '1.jpg': { caption: 'Volcano Asención in Ometepe, Nicaragua.' }, 
       '2.jpg': { caption: 'A Ceibu tree.' }, 
       '3.jpg': { caption: 'The view from Volcano Maderas.' }, 
       '4.jpg': { caption: 'Beer and ice cream.' }
     };
     var myShow = new Slideshow('show', data, {controller: true, height: 400, hu: 'images/', thumbnails: true, width: 500});
   });
 //]]>
</script>
<script type="text/javascript">
$(document).ready(function()
{
 //slides the element with class "menu_body" when paragraph with class "menu_head" is clicked 
 $("#firstpane p.menu_head").click(function()
    {
  $(this).css({backgroundImage:"url(down.png)"}).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
        $(this).siblings().css({backgroundImage:"url(left.png)"});
 });
 //slides the element with class "menu_body" when mouse is over the paragraph
 $("#secondpane p.menu_head").mouseover(function()
    {
      $(this).css({backgroundImage:"url(down.png)"}).next("div.menu_body").slideDown(500).siblings("div.menu_body").slideUp("slow");
         $(this).siblings().css({backgroundImage:"url(left.png)"});
 });
});
</script>

<!--[if lt IE 7]>
        <script type="text/javascript" src="unitpngfix.js"></script>
<![endif]-->

2 个答案:

答案 0 :(得分:3)

jQuery没有冲突是一个很好的选择。我建议做这样的事情:

<script language=javascript>
  var $j = jQuery.noConflict();
</script>

这将使您使用$ j代替$来访问jQuery的功能。我使用这种方法通过GreaseMonkey在大多数页面中包含jQuery。我有一个jQuery的自定义副本,最后包含上面的调用。我使用GreaseMonkey将该脚本的链接插入到网页的头部,这样我就可以使用$ j调查对象属性,而不会影响页面中可能存在的其他库并使用$。

答案 1 :(得分:2)

包含jQuery之后,你应该调用$ .noConflict()。这将从全局命名空间中删除“$”:

<script type="text/javascript" src="jquery-1.js"></script>
<script>
$.noConflict();
</script>
<script type="text/javascript" src="mootools.js"></script>

此时,如果要调用jQuery代码,则应使用 jQuery 而不是 $ 。或者你可以通过在封口中包装 $ 符号来使用技巧

<script type="text/javascript">
jQuery(function($) {
  // here you can use $ instead of jQuery
});
</script>