gpt4 book ai didi

javascript - 具有去抖/节流功能的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 13:36:06 25 4
gpt4 key购买 nike

每次文本框值发生变化时,我都需要调用一个函数。但是,它会初始化 AJAX 调用,因此我不需要在每次击键时都运行脚本。

我编写了以下函数作为概念证明:

$(document).ready(function() {
var scheduledChange;
function triggerLinkChange(value, debounce) {
clearTimeout(scheduledChange);
scheduledChange = setTimeout(function(val) {
alert("value: "+val);
}(value), debounce);
}
$('input').keyup(function(){
triggerLinkChange($(this).val(),3000);
});
});

不幸的是,延迟似乎没有正常发挥作用。我不确定问题到底是什么,因为第一次调用似乎有轻微的延迟(也许),但随后每次按键都会触发。

有什么想法吗?

最佳答案

您正在立即调用在超时中声明的函数,而不是将其传递给该函数。

但是,它实际上可以在不绑定(bind)或传递 value 到函数的情况下工作,因为变量无论如何都在作用域内:

    scheduledChange = setTimeout(function() {
alert("value: " + value);
}, debounce);

这是一个示例:http://jsfiddle.net/RbLRu/

关于javascript - 具有去抖/节流功能的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21191713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com