功能仅适用于调试器

时间:2016-01-08 13:27:13

标签: javascript jquery

我写了一个功能,用于检查按钮是否被点击两次,以及是否要测量两次点击之间的时间。它必须在短时间内防止多次点击。

按钮点击:

$("#Save").click(function () {
    dateTime1 = new Date().getTime();
    BtnId = this.id;
    showSaveDialog();
});

测量功能:

ButtonWasTriggeredTwice: function () {
    var result = false;
    var currentTime = new Date().getTime();
    var time = currentTime - dateTime1;
    if (PreviousBtn === null) {
        result= false;
    } else {
        if (PreviousBtn === BtnId) {
            if (  time < 1500) {
                result = true;
            }
            else result = false;
        }
        else {
            result= false;
        }
    }
    PreviousBtn = BtnId;
    BtnId = null;
    return result;
}

BtnId和PreviosusBtn是全局范围变量。

奇怪的是,当我在调试器中设置断点时,此函数非常有用。如果我每次下载按钮都关闭调试器功能块,无论点击之间的时间间隔是什么

2 个答案:

答案 0 :(得分:4)

您可以将此解决方案与unbind和timeout一起使用,如下所示:

HTML

*.jsx

JS:

<input type="button" id="Save" value="save me" />

This is the JSFiddle

更新此解决方案是我和Revish Patel解决方案的混合

function saveEventButton(){
  $("#Save").click(function () {
    alert('saved!');
    $("#Save").unbind('click');
    setTimeout(function(){
            saveEventButton();
    }, 5000); // 5sec
  });
}

 saveEventButton();

This is the JSfiddle

答案 1 :(得分:0)

首次点击时,您还可以停用按钮

$(document).ready(function () {
  $("#Save").click(function(){
     $('#Save').prop('disabled','disabled');
     // Perform your button click operation
  });
});