一段js代码问题?

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

<!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事件外加一个防抖)
但是现在试了一下, 不管怎么点击都没有进入到方法里面, 不知道是什么原因...是哪里写法不对吗?

image.png

阅读 1.6k
1 个回答
<!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>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题