Javascript 函数仅在调试器中工作

Javascript 函数仅在调试器中工作,javascript,jquery,Javascript,Jquery,我编写了一个函数,用于检查按钮是否被点击两次,以及是否要测量两次点击之间的时间。它必须防止在短时间内多次点击 按钮点击: $("#Save").click(function () { dateTime1 = new Date().getTime(); BtnId = this.id; showSaveDialog(); }); 测量功能: ButtonWasTriggeredTwice: function () { var result = false;

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

按钮点击:

$("#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;
}
buttonwstriggeredtwice:function(){
var结果=假;
var currentTime=new Date().getTime();
var time=currentTime-dateTime1;
如果(上一个BTN==null){
结果=假;
}否则{
如果(以前的BTN==BtnId){
如果(时间<1500){
结果=真;
}
否则结果为假;
}
否则{
结果=假;
}
}
先前的BTN=BtnId;
BtnId=null;
返回结果;
}
BtnId和PreviosusBtn是全局范围变量


奇怪的是,当我在调试器中设置断点时,这个函数非常有效。如果我在每次单击按钮时关闭调试器功能块,无论单击之间的时间间隔是多少,您都可以使用此解决方案取消绑定和超时,如下所示:

HTML

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

function disableTimeout(_this){
  $(_this).prop('disabled','disabled');
  setTimeout(function(){
      $(_this).prop('disabled','');
  }, 5000); // 5sec
}


 $("#Save").click(function () {
    alert('saved!');
    disableTimeout(this);
});

您也可以在执行第一次单击时禁用按钮

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

什么时候调用
按钮wastriggeredtwice
?如果您在使用断点时,以及在不使用断点时,console.log时间datetime1和时间会发生什么情况?@Apollo在创建断点的函数的第一行调用它popup@Glubus控制台很清楚,这里什么都没有显示,我考虑过,但是按钮是在20个文件中定义的,我不想在每个文件中复制这个方法。所以我想在一个地方为我想要的所有按钮调用这个方法,不仅仅是saveYes,而且我必须在1.5s后启用它。我需要在许多不同的文件中定义大约40或50个按钮。我想禁用文件中的按钮,我有创建弹出窗口的功能。简单的方法来处理多个按钮,你们可以使用这个类。给所有按钮提供公共类,并执行单个事件。
function disableTimeout(_this){
  $(_this).prop('disabled','disabled');
  setTimeout(function(){
      $(_this).prop('disabled','');
  }, 5000); // 5sec
}


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