带有时间和事件的JavaScript逻辑

带有时间和事件的JavaScript逻辑,javascript,html,algorithm,javascript-events,timing,Javascript,Html,Algorithm,Javascript Events,Timing,在JavaScript中使用setTimeout()和事件.onclick()有一个关于逻辑流的广泛算法问题 基本程序: 当一个按钮在3秒内被点击2次时,一个HTML元素 (当前可见)当同一按钮 按下此按钮后,图像将重新出现并重复此过程 解决这个问题的最好办法是什么?感谢您提供的代码 我已经为此工作了好几个小时了,我写的代码在逻辑上是不正确的,不会有多大用处 谢谢你的帮助 我希望这有助于: $(文档).ready(函数(){ $('#按钮1')。单击(函数(){ if(typeof(this.

在JavaScript中使用
setTimeout()
和事件
.onclick()
有一个关于逻辑流的广泛算法问题

基本程序:

当一个按钮在3秒内被点击2次时,一个HTML元素 (当前可见)当同一按钮 按下此按钮后,图像将重新出现并重复此过程

解决这个问题的最好办法是什么?感谢您提供的代码

我已经为此工作了好几个小时了,我写的代码在逻辑上是不正确的,不会有多大用处


谢谢你的帮助

我希望这有助于:

$(文档).ready(函数(){
$('#按钮1')。单击(函数(){
if(typeof(this.visibleFlag)=“未定义”){
this.visibleFlag=true;
}
var thisTimeClick=Date.now();
if(this.prevClick&(thisTimeClick-this.prevClick<3000)&&this.visibleFlag){
this.visibleFlag=false;
$('#div1').hide();
}如果(!this.visibleFlag){
this.visibleFlag=true;
$('#div1').show();
}
this.prevClick=thisTimeClick;
});
});

我相信你想要的是这样的东西

我还包括了忽略第三次连续单击(在第二次单击500毫秒内)的逻辑,因为我假设您是在经历类似双击的行为

还值得一看jQuery双击事件:

点击我

形象 $('#按钮示例')。单击(函数(){ var timeNow=new Date().getTime(); var lastClicked=parseInt($('#按钮示例')。数据(“lastClicked”)| | 0); var ms=timeNow-lastcalicked; 如果($(“#imageContainer”)。是(“:可见”)){ 如果(ms<3000){ $(“#imageContainer”).hide(); } $('#按钮示例')。数据(“lastClicked”,timeNow); }否则,如果(ms>500){ $(“#imageContainer”).show(); } });
请发布一些相关代码。当我们不知道你在做什么时,很难给你小费。像这样的?在3秒内单击“0”两次,它将变为“1”。重复此操作以使其反转。如果按钮只需单击一次即可反转,则可以相应地进行更改。如果冲销只需单击一次,则此选项无效。
$(document).ready(function(){
    $('#button1').click(function(){
        if (typeof(this.visibleFlag) == 'undefined') {
            this.visibleFlag = true;
        }
        var thisTimeClick = Date.now();

        if (this.prevClick && (thisTimeClick - this.prevClick < 3000) && this.visibleFlag) {
            this.visibleFlag = false;
            $('#div1').hide();
        } else if (!this.visibleFlag) {
            this.visibleFlag = true;
            $('#div1').show();
        }

        this.prevClick = thisTimeClick;
    });
});
<button id="buttonExample">Click me</button>
<br/>
<div id="imageContainer">Image</div>

<script type="text/javascript">

$('#buttonExample').click(function(){

 var timeNow = new Date().getTime();
 var lastClicked = parseInt($('#buttonExample').data("lastClicked")||0);
 var ms = timeNow - lastClicked;

 if($("#imageContainer").is(":visible")) {

  if(ms < 3000) {
    $("#imageContainer").hide();
  }

  $('#buttonExample').data("lastClicked", timeNow);

 }else if(ms > 500){

  $("#imageContainer").show();

 }

});

</script>