javascript - 如何正确延迟onkeyup
问题描述
如果我想在输入中写入 149,运行方法 3 次,变量小时是 1,然后是 14,然后是 149,我正在寻找的是 changeHour 方法在我停止输入后 3000 毫秒后开始
function delay() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
}
function changeHour(elem) {
var id = $(elem).data("Id");
var hour = $(elem).val();
API_Loading.show();
var url = BASE_PATH + "Stage/UpdateHourOfStage";
API_ajaxWrapper_Library.ajax(url, {
method: "POST",
data: {
id: id,
hour: hour || 0
},
onDone: function(data) {
API_Loading.hide();
$("#saveIcon_" + id).show();
$("#saveIcon_" + id).fadeOut(3000);
},
onFail: function(result) {
API_Loading.hide();
alert("Error");
}
});
}
<div>
<div class="hour-num" style="background-color:#c4bed0;">Hours to go</div>
<input class="hour-num decimal" type="text" value="Hour" data-id="Id" onkeyup="delay(changeHour($(this)), 3000)">
</div>
解决方案
推荐阅读
- docker - 如何使用 dns 从主机访问 docker 网络?
- javascript - 从 Javascript 调用 Wicket - ajax 请求未完成
- angularjs - AngularJS ng-if 具有真或假对象值
- java - 如何处理 CompletableFutures 链中的错误响应?
- python - Beautifulsoup 正在从表格中提取四舍五入的小数(可见的),而不是实际的单元格值
- visual-studio - 在 Visual Studio 中组装打印注册表中的值
- chapel - 用于不良内存管理的良好示例教堂代码?
- php - ajax 数据[0] 未定义
- java - Crystal 报表从 XML 创建报表并将其导出为 PDF,而无需原始 XML 的路径
- c# - Blazor 中的 Razor 视图引擎(在运行时将 blazor 组件转换为 html 字符串)