移动端的页面中,输入框输回车,却触发两次请求。js怎样做到防抖?
时间: 2023-08-10 10:33:40 浏览: 64
为了防止输入框输回车时重复触发请求,可以使用防抖函数来解决这个问题。防抖函数的基本思想是,当事件被触发时,函数会延迟执行一段时间,如果在这段时间内再次触发了事件,就会取消之前的延迟执行,并重新开始计时。这样可以有效地防止事件被重复触发。
以下是一个简单的防抖函数的实现:
```javascript
function debounce(func, delay) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
func.apply(context, args);
}, delay);
}
}
```
使用该函数来处理输入框的回车事件,可以这样写:
```javascript
const input = document.querySelector('#input');
input.addEventListener('keydown', debounce(function(event) {
if (event.keyCode === 13) {
// 处理回车事件
}
}, 500));
```
这里将回调函数传入了 debounce 函数中,并指定了一个延迟时间 500ms。当输入框输回车时,如果在 500ms 内再次触发了回车事件,就会取消之前的延迟执行,并重新开始计时,直到超过 500ms 后才会执行回调函数。这样就可以避免重复触发请求的问题了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)