为什么我的JQuery只会在我放置窗口加载功能的情况下运行?

时间:2011-08-31 03:13:25

标签: javascript jquery

我的以下代码无法正常运行,除非我全部放置

$(window).load(function(){
// within here
}

如何在不需要上述功能的情况下运行我的代码? 谢谢!

我的代码:

// Player controls
    var timer = null;
    $('#left').mousedown(function() {
                moveLeft(); // Do it now
                timer = setInterval(moveLeft, 5); // Then every 100 ms
          }).mouseup(function() {
                clearInterval(timer); // And stop it
          });

    function moveLeft() {
          var nextpos = parseInt($('#player').css('left')) - 5;
          if (nextpos > 0) {
                $('#player').css('left', nextpos + 'px');
          }
    }
    $('#right').mousedown(function() {
                moveRight(); // Do it now
                timer = setInterval(moveRight, 5); // Then every 100 ms
          }).mouseup(function() {
                clearInterval(timer); // And stop it
          });

    function moveRight() {
          var nextpos = parseInt($('#player').css('left')) + 5;
          if (nextpos < PLAYGROUND_WIDTH - 100) {
                $("#player").css("left", ""+nextpos+"px");
          }
    }

// Timer
$(function(){
    var timercount = 30;
      countdown = setInterval(function(){
        $("#timer").html(timercount);
        if (timercount <= 0) {
          $("#timer").html("TIMES UP");
        }
        timercount--;
      }, 1000);
});

3 个答案:

答案 0 :(得分:2)

我打算假设你没有试图比较你为什么需要$(window).load而不是$ .ready。无论如何,javascript运行如所见。你有jquery查找可能尚未加载到页面中的元素(#right,#player等)。因此,因为这些元素不在页面上,所以jQuery无法将这些事件绑定到它们。

阅读本文 - 它可以更彻底地回答您的问题。 http://api.jquery.com/ready/

答案 1 :(得分:0)

如果您在页面末尾而不是在标题中运行代码,那么这些元素应该在javascript运行时加载。

也就是说,如果您的代码是比较图像的大小,则需要首先加载图像......

答案 2 :(得分:0)

你必须把它放在HTML下面..

<body>
//your html stuff here that uses the script

<script type="text/javascript">
// the js code here
</script>

</body>