JavaScript/jQuery - 多个Wack-a-Mole Qs :(增量分数,x/y定位,单击事件监听器 - 更正)
我是一名初学者,很明显,我正在为一个课程工作。我设法通过我自己的网站& 1解决了1个步骤,但最后4个越来越混乱,我搜索了更多的问题,这些问题我整天和大部分时间都在做。我已经通过了W3Schools,TutorialsPoint和tizag.com,但仍然无法弄清楚。JavaScript/jQuery - 多个Wack-a-Mole Qs :(增量分数,x/y定位,单击事件监听器 - 更正)
下面是说明:
编写生成随机整数两个功能。一个函数应该返回0到300之间的数字(对于y定位),另一个函数应该返回0到600之间的数字(x定位)。从jQuery就绪函数中调用它们(暂时),并alert()这些值。
在jQuery ready函数中,编写一些JavaScript/jQuery代码,它为button#start_button添加一个jQuery click事件监听器。目前,添加一个alert()来测试按钮点击是否正常。
创建一个函数(jQuery ready函数外部),它在调用时递增用户的分数并更新span#分数中的HTML。提示:您应该创建一个全局变量来跟踪分数。
在Document Ready中调用您的分数增加功能以进行测试。
这就是我所拥有的。任何帮助将不胜感激。我很沮丧。
var mole='<img src="img/mole.jpg"/>'
var score=docutment.getElementById("#score");
$(document).ready(function() {
$("#gamespace").show().html(mole);
$("#timer").show()
document.getElementById("start_button").addEventListener("click", myFunction);
function myFunction(){
alert(Okay);
}; //end alert
}); //end.ready
function getRndInteger(min, max){
var y=Math.floor((Math.random()*300)+1);
function click(){
alert(y);
}; //end alert y
}; //end y
function getRndInteger(min, max){
var x=Math.floor((Math.random()*600)+1);
function click(){
alert(x);
}; //end alert x
}; //end x
function displayScore(){
score.innerHTML=
}; //end score
我想我应该添加其余的代码,如果有人什么来测试它。
<div id="content">
<h1>Whack-A-Mole</h1>
<p>After clicking "start", you will have 30 seconds to click
as many moles as you can. The moles appear randomly so be ready! </p>
<div id="controls">
<span id="score">0 pts</span>
<button type="button" id="start_button">Start!</button>
</div>
<div id="timer">30 seconds left</div>
<div id="gamespace">
</div>
</div>
定了!
<script>
var mole='<img src="img/mole.jpg"/>';
var score=0;
$(document).ready(function(){
$("#gamespace").html(mole);
$("#score").click(increment);
$("#timer").show();
$("#start_button").click(function(){
alert("Okay");
}); //end alert
alert(getRndNum());
alert(getRndNumY());
}); //end.ready
function getRndNum(min, max){
var x=Math.floor((Math.random()*600)+1);
return x;
}; //end x
function getRndNumY(min, max){
var y=Math.floor((Math.random()*300)+1);
return y;
}; //end y
function increment(){
$("#score")[0].innerHTML=score;
}; //end increment
</script>
这里是你的代码的一些意见:
不要忘了终止与分号所有线路
var mole='<img src="img/mole.jpg"/>'
确保您的拼写是否正确(“文件”是拼写错误)。
var score=docutment.getElementById("#score");
您还在这里混合使用jQuery和vanilla JavaScript。要获得使用香草JavaScript中的元素,你这样写(注意缺少#符号):
var score = document.getElementById('score');
而使用jQuery你可以这样写:
var score = $('#score');
“#gamespace”和' #timer'已经可见,所以不需要在它们上调用.show()。
$("#gamespace").show().html(mole);
$("#timer").show()
同样,你可以在这里使用jQuery:
// JavaScript
document.getElementById("start_button").addEventListener("click", myFunction);
// jQuery
$('#start_button').click(myFunction);
这将寻找一个名为好的变量。如果你想显示文字'好',你需要用引号包起来。
function myFunction(){
alert(Okay);
}; //end alert
在这里,你定义了两个同名的函数,所以你的第二个函数覆盖了你的第一个函数。
function getRndInteger(min, max){
// do stuff...
}; //end y
function getRndInteger(min, max){
// do stuff...
}; //end x
你也没有从函数返回任何值。你正在定义一个名为'click'的函数,但你永远不会调用它或将它绑定到任何东西。你还需要两个你不用的参数(最小和最大)。
function getRndInteger(min, max){
var y=Math.floor((Math.random()*300)+1);
function click(){
alert(y);
}; //end alert y
}; //end y
要编写一个能够返回一个0值到300的功能,你可以这样做:
function randomX(){
var x = Math.floor(Math.random()*300);
return x;
}
你可以提醒randomX的结果通过写
alert(randomX());
我希望能够帮助您清理已有的代码,jQuery documentation非常有帮助,它会告诉您需要传递给某些功能的参数,它们的功能以及它们的功能会回来的。
谢谢。鼹鼠和计时器直到我添加它们才显示出来,这些是我第一步正确的两个步骤。不过,我刚刚做的一些事情让他们离开了。我试着拿出show()并保持它,没有区别。他们现在走了!我做了其他的改变,但仍然没有任何反应。另外,我不知道底部的最终功能是什么。 这里是新的代码...如果我能弄清楚把它放在哪里。 – Jenny
最后一个函数(displayScore)会破坏你的代码,因为它包含一个未完成的表达式。如果删除那些东西应该按预期显示。 –
getRndIntegerX/Y函数在任何时候都没有被调用,这就是为什么没有警报出现。您可以从文档就绪功能中调用它们。而且,一旦函数返回一个值,它就会停止运行。因此,如果您按原样调用它们,它们将返回x/y的值,但不会显示警报。 –
不应该有任何回答你的问题的尝试,因为它对于这个平台来说太广泛了,因为这个平台需要一个特定的问题来给出具体的答案。你所做的是从你编写的一些代码中获得至少四个期望,并希望得到帮助。这不是什么或它是如何工作的。如果不是这是一个周末的晚上,现在很容易关闭。 – Rob
对不起!我以为我在做任何问题之前认真努力完成整件事情是正确的。我没有意识到我会太愚蠢,无法自行解决问题。我不知道在我去的时候我应该问每个问题。它会让事情变得更容易!感谢您解释指南。 – Jenny