两次点击之间的差异并没有很好地处理这段代码
Difference between two clicks didn't get well on this code
我是javascript的新手,这就是为什么我问这个问题。我只是希望警报"解锁",如果"哈希"键按下9秒后的时间间隔,但它不像预期的那样工作,有人能帮助我吗?
document.getElementById("key").addEventListener("click",function(){
alert("enter # to unlock");
var time = (new Date()).getTime();
//alert(time);
});
document.getElementById("hash").addEventListener("click",function(){
var keytime = (new Date()).getTime();
//alert(keytime);
var diff = time - keytime;
alert(diff);
if(diff <= 9000){
alert("unlocked");
}
else{
alert("try again");
}
});
<button id="key">key </button>
<button id="hash">#</button>
time
应该是一个全局变量,这样hash
的事件侦听器才能访问它。
var time = Infinity;
document.getElementById("key").addEventListener("click",function(){
alert("enter # to unlock");
time = (new Date()).getTime();
//alert(time);
});
document.getElementById("hash").addEventListener("click",function(){
var keytime = (new Date()).getTime();
//alert(keytime);
var diff = time - keytime;
alert(diff);
if(diff <= 9000){
time = Infinity;
alert("unlocked");
}
else{
alert("try again");
}
});
<button id="key">key </button>
<button id="hash">#</button>
您在#key
点击侦听器的范围内初始化了time
。外面够不着。
将其设置为全局变量。
变量作用域文档
var time = 0;
document.getElementById("key").addEventListener("click",function(){
alert("enter # to unlock");
time = (new Date()).getTime();
//alert(time);
});
document.getElementById("hash").addEventListener("click",function(){
var keytime = (new Date()).getTime();
//alert(keytime);
var diff = time - keytime;
alert(diff);
if(diff <= 9000){
alert("unlocked");
}
else{
alert("try again");
}
});
<button id="key">key </button>
<button id="hash">#</button>
时间是本地变量。
要在其他函数中访问它,你应该创建一个全局变量,像这样:var time;
document.getElementById("key").addEventListener("click",function(){
alert("enter # to unlock");
time = (new Date()).getTime();
//alert(time);
});
document.getElementById("hash").addEventListener("click",function(){
var keytime = (new Date()).getTime();
//alert(keytime);
var diff = time - keytime;
alert(diff);
if(diff <= 9000){
alert("unlocked");
}
else{
alert("try again");
}
});
相关文章:
- 我如何才能让CasperJS和PhantomJS在约塞米蒂玩得很好
- 在Javascript中使用全局变量作为缓存是很好的
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- JavaScript中的OOP太令人困惑了,ES6很棒,但没有得到很好的支持,该怎么办
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- html5:一个很好的加载方法
- mootools 1.4.2和angular 1.3在ie8中配合得很好
- Javascript是一个很好的日期选择器和时间选择器库
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- unbind().click(function(){..})是一种很好的做法
- Chrome,Safari在从本地存储读取时挂起,而Firefox很好
- 具有搜索文本的功能,不能很好地处理标点符号/符号.Jquery/Jquery mobile.
- jquery代码不能很好地处理不同的URL
- PHP 似乎不能很好地处理 XML 字符串
- 让jQuery Waypoints很好地处理JavaScript创建的内容时遇到问题
- CSS效果可以很好地处理静态表数据,但当通过javascript添加表数据时就不行了
- 两次点击之间的差异并没有很好地处理这段代码
- JQuery在MVC 5中可以很好地处理整数,但不能处理字符串
- Django不能很好地处理简单的angularjs,不知道为什么
- ASP.. NET不能很好地处理外部JavaScript文件