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
});
});