JavaScript函数问题(日期)

时间:2014-05-19 08:50:53

标签: javascript date javascript-events onclick scope

我的JavaScript代码存在问题。我需要编写执行以下操作的代码:

  1. 在3秒内点击两次图像以使图像消失
  2. 点击一次以重新出现
  3. 我已经接近工作......我只是对日期有疑问。我不知道如何保持第一次点击的日期。我的代码现在只是为每次点击创建一个新的开始日期,这是我不想要的。

    到目前为止的代码:

    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秒,图像也会发生变化,因为我每次触发该功能时都会创建一个新的START日期。我该如何解决这个问题?

    干杯。

1 个答案:

答案 0 :(得分:0)

以下是一个有效的例子: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,并获得点击次数,如果在设置超时(毫秒)内则隐藏,否则,它会再次显示,按照规范