【发布时间】:2021-12-28 10:26:58
【问题描述】:
我有一个被两个按钮 (-/+) 包围的输入数字,以便从该输入中添加或删除数量。在数量之后,我有一个 提交按钮,它从一个更新购物车中产品数量的模块启动 ajax 代码。
如何在用户停止单击/更改此输入中的值后 1.5 秒后触发此按钮(以避免多次调用),并在 ajax 调用完成时拦截,以便用户可以重用输入?
这就是我增加输入值并开始使用的方式。增加值后我找不到这样做的逻辑......
let currentAdding = false;
$(document).on('click', '[data-action="more"]', function() {
let input = $(this).siblings('input[type="number"]');
let val = input.val();
let total = parseInt(val) + parseInt(1);
input.val(total)
if (currentAdding === false) {
$(this).parents('form').find('input[type="submit"]').trigger('click') //this click trigger an ajax call from a module
//set currentAdding after the ajax is done
currentAdding = true;
}
});
【问题讨论】:
-
当用户点击时启动计时器。每次用户点击且计时器尚未结束时重置计时器。当计时器结束时(所以有一段时间没有重置)然后触发你想要的任何功能。
标签: jquery ajax asynchronous