Javascript没有加载?新手在这里

时间:2014-07-28 23:09:12

标签: javascript

当我在浏览器中打开html文件时,javascript无法正常工作,我无法弄明白为什么?完全相同的代码在codecademy提示中起作用,但不是在我从桌面上的文件启动它时。

HTML

<html>
      <head>
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
        <link href='http://fonts.googleapis.com/css?family=Open+Sans:400;300' rel='stylesheet' type='text/css'>
        <link href='style.css' rel='stylesheet'>

  </head>
  <body>

    <div class="menu">

      <!-- Menu icon -->
      <div class="icon-close">
        <img src="http://s3.amazonaws.com/codecademy-content/courses/ltp2/img/uber/close.png">
      </div>

      <!-- Menu -->
      <ul>
        <li><a href="#">About</a></li>
        <li><a href="#">Blog</a></li>
        <li><a href="#">Help</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </div>

    <!-- Main body -->
    <div class="jumbotron">

      <div class="icon-menu">
        <i class="fa fa-bars"></i>
        Menu
      </div>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="app.js"></script>
  </body>
</html>

CSS

/* Initial body */
body {
  left: 0;
  margin: 0;
  overflow: hidden;
  position: relative;
}

/* Initial menu */
.menu {
  background: #202024 url('http://s3.amazonaws.com/codecademy-content/courses/ltp2/img/uber/black-thread.png') repeat left top;
  left: -285px;  /* start off behind the scenes */
  height: 100%;
  position: fixed;
  width: 285px;
}

/* Basic styling */

.jumbotron {
  background-image: url('http://s3.amazonaws.com/codecademy-content/courses/ltp2/img/uber/bg.png'); 
  height: 100%;
  -webkit-background-size: cover;
     -moz-background-size: cover;
       -o-background-size: cover;
          background-size: cover;
}

.menu ul {
  border-top: 1px solid #636366;
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu li {
  border-bottom: 1px solid #636366;
  font-family: 'Open Sans', sans-serif;
  line-height: 45px;
  padding-bottom: 3px;
  padding-left: 20px;
  padding-top: 3px;
}

.menu a {
  color: #fff;
  font-size: 15px;
  text-decoration: none;
  text-transform: uppercase;
}

.icon-close {
  cursor: pointer;
  padding-left: 10px;
  padding-top: 10px;
}

.icon-menu {
  color: #fff;
  cursor: pointer;
  font-family: 'Open Sans', sans-serif;
  font-size: 16px;
  padding-bottom: 25px;
  padding-left: 25px;
  padding-top: 25px;
  text-decoration: none;
  text-transform: uppercase;
}

.icon-menu i {
  margin-right: 5px;
}

的Javascript

var main = function() {
  /* Push the body and the nav over by 285px over */
  $('.icon-menu').click(function() {
    $('.menu').animate({
      left: "0px"
    }, 200);

    $('body').animate({
      left: "285px"
    }, 200);
  });

  /* Then push them back */
  $('.icon-close').click(function() {
    $('.menu').animate({
      left: "-285px"
    }, 200);

    $('body').animate({
      left: "0px"
    }, 200);
  });
};


$(document).ready(main);

3 个答案:

答案 0 :(得分:1)

虽然PHPglue是正确的,并且您应该放置结束</div>标记,但这并不会导致您的JS无法执行。但是,此控制台错误:

  

ReferenceError:$未定义app.js:26

表示jQuery未正确加载,这意味着:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

某种程度上不起作用,我想我知道为什么......

使用// load the requested URL relative to the current page's scheme。由于您在本地浏览器中查看此内容,因此该方案为file://。因此,您没有加载jQuery,因为它要求file://ajax.googleapis...

所以是的,我的评论是错误的。在方案为http://https://的Web服务器上,使用//ajax.googleapis...就可以了。在localhost上,它不是。

答案 1 :(得分:0)

您错过了结束</div>代码:

<div class="jumbotron">

  <div class="icon-menu">
    <i class="fa fa-bars"></i>
    Menu
  </div>

添加

</div>

如果右键单击带有Firefox的网页,请单击View Page Source。如果它们是源代码的一部分,您应该看到大多数HTML标记问题为红色。当然,如果您的代码是使用JavaScript创建的,那么这不会起作用。

答案 2 :(得分:-4)

尝试$document.ready(main());

我不知道jQuery,所以不确定它是否需要用()

启动函数