2013-06-20 36 views
-4

我有两个脚本 1个脚本用于导航栏,另一个用于垂直滚动,但问题是当插入垂直滚动脚本时导航栏脚本不工作。单个页面中的2个脚本

是否有人知道如何把2个脚本同时工作?

导航栏的脚本:

<script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/jquery-easing-1.3.pack.js"></script><script type="text/javascript" src="js/jquery-easing-compatibility.1.2.pack.js"></script> 
<!--[if IE]> 
<style type="text/css">.jimgMenu {position:relative;width:630px;height:200px;overflow:hidden;margin-left:20px;}</style> 
<![endif]--> 
<script type="text/javascript"> 
$(document).ready(function() { 

    // find the elements to be eased and hook the hover event 
    $('div.jimgMenu ul li a').hover(function() { 

     // if the element is currently being animated (to a easeOut)... 
     if ($(this).is(':animated')) { 
      $(this).stop().animate({ 
       width: "310px" 
      }, { 
       duration: 450, 
       easing: "easeOutQuad" 
      }); 
     } else { 
      // ease in quickly 
      $(this).stop().animate({ 
       width: "310px" 
      }, { 
       duration: 400, 
       easing: "easeOutQuad" 
      }); 
     } 
    }, function() { 
     // on hovering out, ease the element out 
     if ($(this).is(':animated')) { 
      $(this).stop().animate({ 
       width: "78px" 
      }, { 
       duration: 400, 
       easing: "easeInOutQuad" 
      }) 
     } else { 
      // ease out slowly 
      $(this).stop('animated:').animate({ 
       width: "78px" 
      }, { 
       duration: 450, 
       easing: "easeInOutQuad" 
      }); 
     } 
    }); 
}); 
</script> 

vertival脚本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>  
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $(".contactLink").click(function() { 
     if ($("#contactForm").is(":hidden")) { 
      $("#contactForm").slideDown("slow"); 
     } else { 
      $("#contactForm").slideUp("slow"); 
     } 
    }); 
}); 

function closeForm() { 
    $("#messageSent").show("slow"); 
    setTimeout('$("#messageSent").hide();$("#contactForm").slideUp("slow")', 2000); 
} 

$(document).ready(function() { 
    function filterPath(string) { 
     return string.replace(/^\//, '') 
      .replace(/(index|default).[a-zA-Z]{3,4}$/, '') 
      .replace(/\/$/, ''); 
    } 
    $('a[href*=#]').each(function() { 
     if (filterPath(location.pathname) == filterPath(this.pathname) && location.hostname == this.hostname && this.hash.replace(/#/, '')) { 
      var $targetId = $(this.hash), 
       $targetAnchor = $('[name=' + this.hash.slice(1) + ']'); 
      var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false; 
      if ($target) { 
       var targetOffset = $target.offset().top; 
       $(this).click(function() { 
        $('html, body').animate({ 
         scrollTop: targetOffset 
        }, 1000); 
        var d = document.createElement("div"); 
        d.style.height = "101%"; 
        d.style.overflow = "hidden"; 
        document.body.appendChild(d); 
        window.scrollTo(0, scrollToM); 
        setTimeout(function() { 
         d.parentNode.removeChild(d); 
        }, 10); 
        return false; 
       }); 
      } 
     } 
    }); 
}); 
</script> 

PS:我的导航栏是固定的

+3

您正在加载2个版本的jQuery。你可以先删除一个吗?然后创建一个小提琴[链接](http://jsfiddle.net) – mohkhan

+7

为什么你在两个不同的位置(至少有两个不同的版本)3次包括jQuery? – Kai

+0

不需要。我需要2个脚本,即时通讯编程所有的HTML在同一页面(约400行代码),因为我希望网站滚动,而不是链接其他页面,导航栏脚本,是的,我需要它,因为ny导航栏是固定的 –

回答

0

你的第二个脚本overwritting一些功能/第一个脚本的值。这就是为什么你的脚本不能一起工作。

  1. 试着让我们调试器看看哪些部分工作和脚本失败。
  2. 尝试编写不会产生问题的代码,例如将所有数据和函数都包含到“类”中。
  3. 尝试编写只需要执行其任务的html元素的代码,例如:避免使用父元素(window.scrollTo)。