JavaScript函数问题(日期)

JavaScript Function Issue (dates)

本文关键字:日期 问题 函数 JavaScript      更新时间:2023-09-26

我的JavaScript代码有问题。我需要让代码做以下事情:

  1. 在3秒内点击图片两次使图片消失
  2. 点击一次重新出现

我已经让它接近工作…我只是对约会有意见。我不知道怎么记起第一次点击的日期。我的代码现在只是创建一个新的开始日期,每次点击,这是我不想要的。

到目前为止的代码:

var imgNext = -1;
var start = new Date ( );
function disappear ()
{
 var end = new Date ();
 imgNext++;
if (imgNext == 2)
{
    document.getElementById("myPicture").style.visibility="visible";
    imgNext = -1;
}
if (imgNext == 1 && (end-start <3000))
{
    document.getElementById("myPicture").style.visibility="hidden";
}
start = new Date ();

}

在代码中的图像变化,即使点击超过3秒的间隔,因为我创建一个新的开始日期,每次函数被触发。我该如何解决这个问题?

下面是答案,并附有一个工作示例:http://jsfiddle.net/yS5bs/2/

document.getElementById("disappear").onclick = function() {
    var lastClick = this.attributes["click-time"],
        click = new Date().getTime(),
        timeout = parseInt(this.attributes["data-timeout"].value);
        if(lastClick && (click - lastClick) < timeout && this.style.opacity == 1) {
            this.style.opacity = 0;
            this.attributes["click-time"].value = null;
            return;
        }
        else {
            this.attributes["click-time"] = click;
        }
        if(this.style.opacity == 0) {
            this.style.opacity = 1;
            this.attributes["click-time"] = null;
            return;
        }
};

基本上我是分配的onclick,并获得点击时间,如果在设置超时(毫秒),那么它隐藏,否则,它再次显示,按照规格