我的以下代码无法正常运行,除非我全部放置
$(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);
});
答案 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>