一段js代码问题?

作者站长头像
站长
· 阅读数 10

这是以前写在老项目里的防抖处理逻辑, 现在单独拿出来调试. 出了点问题...

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <button>按钮</button>
        <script src="http://localhost:8000/node_modules/mdb/js/jquery.min.js"></script>
        <script>
            function debounce(func, wait) {
                let timeout;
                return () => {
                    clearTimeout(timeout);
                    timeout = setTimeout(func, wait);
                }
            }

            $('button').click(() => {
                debounce(() => {
                    console.log(123);
                }, 1000);
            })
        </script>
    </body>
</html>

需要实现的功能是当连续点击按钮, 延迟1秒后后再执行里面的打印 (解释不是很清楚, 总之就是给按钮click事件外加一个防抖)但是现在试了一下, 不管怎么点击都没有进入到方法里面, 不知道是什么原因...是哪里写法不对吗?

一段js代码问题?

回复
1个回答
avatar
test
2024-07-02
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <button>按钮</button>
        <script src="http://localhost:8000/node_modules/mdb/js/jquery.min.js"></script>
        <script>
            function debounce(func, wait) {
                let timeout;
                return () => {
                    clearTimeout(timeout);
                    timeout = setTimeout(func, wait);
                }
            }

            const debouncedClick = debounce(() => {
                console.log(123);
            }, 1000);

            $('button').click(debouncedClick);
        </script>
    </body>
</html>
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容