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

如何在jQuery的$(document).ready中调用函数?报错问题排查

问题原因分析

你的代码存在两个关键问题:

  1. 自执行函数app.alerts.detailsChecklist = function () {...}();没有返回任何值,导致app.alerts.detailsChecklist实际是undefined,自然无法找到validate方法。
  2. 内部的validate是函数内的局部变量,外部原本就无法直接访问,必须通过暴露公共接口才能调用。
修正方案

方案1:通过自执行函数返回暴露方法的对象

这种方式保留了变量封装的特性,适合需要私有变量的场景:

app.alerts = app.alerts || {};

app.alerts.detailsChecklist = function () {
  var validate = function () {
     // 执行校验逻辑
     // 返回true或false
     return true; // 示例返回值
  };
  
  // 返回包含公共方法的对象
  return {
    validate: validate
  };
}();

$(document).ready(function () {
   localStorage.setItem('valid', app.alerts.detailsChecklist.validate() ? 'true' : 'false');
});

方案2:直接定义带方法的对象

如果不需要私有变量的封装,可以简化写法:

app.alerts = app.alerts || {};

app.alerts.detailsChecklist = {
  validate: function () {
     // 执行校验逻辑
     // 返回true或false
     return true; // 示例返回值
  }
};

$(document).ready(function () {
   localStorage.setItem('valid', app.alerts.detailsChecklist.validate() ? 'true' : 'false');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:59:49