每秒显示和隐藏数字的Javascript
以下是我设法做到的:每秒显示和隐藏数字的Javascript,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,以下是我设法做到的: <div class="numbers" id="numbers"> <div id="11" hidden=""> <img src="numbers/11.png"> </div> <div id="12" hidden=""> <img src="numbers/12.png"> <
<div class="numbers" id="numbers">
<div id="11" hidden="">
<img src="numbers/11.png">
</div>
<div id="12" hidden="">
<img src="numbers/12.png">
</div>
<div id="13" hidden="">
<img src="numbers/13.png">
</div>
<div id="14" hidden="">
<img src="numbers/14.png">
</div>
<div id="15" hidden="">
<img src="numbers/15.png">
</div>
</div>
<script type="text/javascript">
function numbers() {
var num = Math.floor(Math.random() * (15 - 10 + 1)) + 10;
var currentdate = new Date();
var enddate = document.getElementById("end_date").value;
var datetime = (currentdate.getUTCMonth()+1) + "/"
+ currentdate.getUTCDate() + "/"
+ currentdate.getUTCFullYear() + " "
+ currentdate.getUTCHours() + ":"
+ currentdate.getUTCMinutes() + ":"
+ currentdate.getUTCSeconds();
var date2 = new Date(enddate);
var timestamp1 = datetime.getTime();
var timestamp2 = date2.getTime();
if(timestamp1 > timestamp2)
{
//kill the interval
//kil the timer
//show the winner
}
else
{
$("#numbers").hide();
//hide all numbers
$("#11").hide();
$("#12").hide();
$("#13").hide();
$("#14").hide();
$("#15").hide();
//show generated new numbery
$("#"+num).show();
$("#numbers").show();
}
}
setInterval("numbers()", 1000);
</script>
函数号(){
var num=Math.floor(Math.random()*(15-10+1))+10;
var currentdate=新日期();
var enddate=document.getElementById(“结束日期”).value;
var datetime=(currentdate.getUTCMonth()+1)+“/”
+currentdate.getUTCDate()+“/”
+currentdate.getUTCFullYear()+“”
+currentdate.getUTCHours()+“:”
+currentdate.getUTCMinutes()+“:”
+currentdate.getUTCSeconds();
var date2=新日期(enddate);
var timestamp1=datetime.getTime();
var timestamp2=date2.getTime();
如果(时间戳1>时间戳2)
{
//消磨时间
//停止计时
//向获胜者展示
}
其他的
{
$(“#数字”).hide();
//隐藏所有数字
$(“#11”).hide();
$(“#12”).hide();
$(“#13”).hide();
$(“#14”).hide();
$(“#15”).hide();
//显示生成的新编号
$(“#”+num.show();
$(“#数字”).show();
}
}
设置间隔(“数字()”,1000);
它不起作用了。。。我尝试在函数(数字)中添加一条警报消息,但它仍然不起作用。。
我使用PHP生成这些数字,我粘贴了脚本的HTML输出。。
希望听到有关修复此脚本的信息:)
谢谢。行中:
setInterval(numbers(), 1000);
实际上是执行numbers(),而不是计划每秒执行一次。试试这个:
setInterval("numbers()", 1000);
你的日期时间是一个字符串,对吗?也许你把它和当前日期弄混了;尝试:
currentdate.getTime();
注意getTime()是基于UTC的;因此,无论如何都不需要将currenttime转换为UTC。另外,我希望您可以直接比较日期对象,而不必经过“getTime”(虽然不确定)。我的答案:
首先要感谢fast,因为在他解释之前,setinterval函数根本不起作用!
其次,有一个错误导致javascript代码死亡,因此我替换了:
var date2 = new Date(enddate);
var timestamp1 = datetime.getTime();
var timestamp2 = date2.getTime();
与:
查看并告诉您在那里看到的错误以及它们指向的行。特别是最后一行(1\000?)看起来可疑,但可能还有其他问题。“它不工作”不是一个有用的问题描述。
setInterval(numbers(),1\000)代码>从1\000
中删除斜杠我发誓我两天前写了这个脚本,我真的想从我的错误中吸取教训,而不是试图成为一个灌木丛什么的..没有人这么说,但你需要更具体一些,而不仅仅是在这里转储代码并说“它不起作用”。告诉你得到了什么错误,它应该做什么,以及它做了什么。已经做了但没有运气:(谢谢你的回答,下次会小心的;)我添加了一个警告(1);进入函数的第一行,它每秒都在发出警报!我在firefox上打开了控制台,上面写着“TypeError:datetime.getTime不是函数”
var date1 = new Date(datetime);
var date2 = new Date(enddate);
var timestamp1 = date1.getTime();
var timestamp2 = date2.getTime();