Javascript没有加载

时间:2016-04-28 08:55:52

标签: javascript jquery html

我的Javascript与我的HTML无法通信。我正在尝试使用scrollto函数,但似乎我的javascript和HTML之间的连接有问题。

使用Javascript:

$('a[href^="#"]').on('click', function(event) {
    var target = $(this.href);
    if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top
        }, 10000);
    }
});

HTML:

<head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script src="parallax.js"></script>
        <script type="text/javascript" src="scrollto.js"></script>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="icon" href="favicon.png" type="image/gif" sizes="16x16">
        <title></title>
        <link href="style.css" rel="stylesheet" type="text/css">
        <link rel="stylesheet" type="text/css" media="screen" href="http://cdnjs.cloudflare.com/ajax/libs/fancybox/1.3.4/jquery.fancybox-1.3.4.css" />
 </head>

2 个答案:

答案 0 :(得分:5)

因为您需要在body标记的末尾加载scrollto脚本,以确保加载DOM。否则,您可以将代码包装在

$(document).ready(function(){
   //your code here
});

或使用排序版

$(function() {
    //your code here
});

答案 1 :(得分:0)

你可以试试这个:

$('body').on('click', 'a[href^="#"]', function (event) {
  var target = $(this.href);
  if( target.length ) {
    event.preventDefault();
    $('html, body').animate({
        scrollTop: target.offset().top
    }, 10000);
  }
});

您可以使用DOM中加载的任何父选择器替换body。