函数在委托事件和普通绑定事件执行问题

发布于 2022-09-11 16:26:17 字数 544 浏览 11 评论 0

clipboard.png
代码如下:

    $(".password").on("keydown", function(e) {
        if (e.keyCode === 13 && !e.ctrlKey) {
            e.preventDefault();
            $('.loading-btn').click(denlu());
        }
    })
    $(".loading-btn").click(function(){denlu()});

如果$(".loading-btn").click(function(){denlu()});写成$(".loading-btn").click(denlu());页面刷新会直接执行,但是在$(".password").on("keydown", function(e) {})里面却不会,为什么呢?请指教Thanks♪(・ω・)ノ

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡離愁欲言轉身 2022-09-18 16:26:17

首先要先理解 jQuery 事件方法:
事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。

结合你的代码
触发:

$('.loading-btn').click(denlu());

绑定函数:

$(".loading-btn").click(function(){denlu()});

如果触发的情况下,没有放在某个操作的回调(函数)中,在读取到当前代码行的时候就会触发,故
$('.loading-btn').click(denlu());会立即触发$('.loading-btn').click,
所以click()中denlu()也会作为函数表达式语句执行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文