函数只能在调试器中工作
Function works only in debugger
我编写了一个函数,用于检查按钮是否被点击了两次,以及是否要测量两次点击之间的时间。它必须防止在短时间内多次点击。
点击按钮:
$("#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和PreviousBtn是全局范围变量。
奇怪的是,当我在调试器中设置断点时,这个函数工作得很好。如果我每次点击按钮都关闭调试器功能块,无论点击之间的时间间隔是多少
您可以使用带有解除绑定和超时的解决方案,如下所示:
HTML
<input type="button" id="Save" value="save me" />
JS:
function saveEventButton(){
$("#Save").click(function () {
alert('saved!');
$("#Save").unbind('click');
setTimeout(function(){
saveEventButton();
}, 5000); // 5sec
});
}
saveEventButton();
这是JSFiddle
更新此解决方案是mine和Revish Patel解决方案的混合
function disableTimeout(_this){
$(_this).prop('disabled','disabled');
setTimeout(function(){
$(_this).prop('disabled','');
}, 5000); // 5sec
}
$("#Save").click(function () {
alert('saved!');
disableTimeout(this);
});
这是JSfiddle
您还可以在执行第一次单击时禁用按钮。
$(document).ready(function () {
$("#Save").click(function(){
$('#Save').prop('disabled','disabled');
// Perform your button click operation
});
});
相关文章:
- VS2010 javascript调试器希望在VS2010的新实例中启动
- 变量在运行时未定义,但在使用调试器时定义
- 调试器;[错误]194:11:标识符是一个保留字
- 在页面检查器中启用javascript调试器
- console.assert失败时中断chrome调试器
- 仅打开调试器时出现Google chrome扩展错误
- JavaScript在调试器中工作,但在发布到IIS时不工作
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 代码仅在调试器模式下工作,断点位于 Consol.log否则不起作用
- Firebug 调试器无法正常工作
- 函数只能在调试器中工作
- for循环中的Addeventlistener可以工作,但调试器向我抛出一个未捕获的TypeError:无法读取属性
- 带有MVC的Javascript在没有浏览器调试器的情况下无法在IE中工作
- Javascript跳过一段代码,但在使用调试器时可以正常工作
- Visual Studio 2012 javascript调试器停止工作
- Javascript调试器与Android webkit一起工作
- IE9:脚本只在调试器中工作,但在非调试时不工作
- JavaScript代码仅在调试器CRM 2011中工作
- jquery append()在chrome调试器和IE上工作,但在chrome中不工作
- 调试器不工作在visual studio