You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery blur事件监听器仅触发一次问题排查求助

问题根因

你代码中的事件绑定逻辑存在语法错误,直接导致了问题出现:

  • jQuery事件绑定方法的回调参数需要接收函数引用,你在func1、computeStuff后添加了括号,相当于代码初始化时就直接执行了这两个函数,将函数返回值(无return语句时为undefined)绑定给了事件,因此只会在页面加载时自动执行一次,后续事件触发时无对应回调可执行,自然不会响应。
  • 额外补充:外层的$(function(){})本身就是DOM加载完成的回调,不需要再额外调用$("#TheBody").ready()方法,属于冗余写法。

修复后的代码

$(function(){
    // DOM加载完成后直接执行func1
    func1();
    // 绑定blur事件时仅传入函数名,不带括号,即传入函数引用
    $("#data_box").on("blur", computeStuff);
});

扩展场景:回调需传参的写法

如果你的computeStuff需要传入自定义参数,可以用匿名函数包裹:

$("#data_box").on("blur", function() {
    // 此处可传入自定义参数
    computeStuff(param1, param2);
});

内容的提问来源于stack exchange,提问作者Tomas Doherty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:36:03