如何在jQuery的$(document).ready中调用函数?报错问题排查
问题原因分析
你的代码存在两个关键问题:
- 自执行函数
app.alerts.detailsChecklist = function () {...}();没有返回任何值,导致app.alerts.detailsChecklist实际是undefined,自然无法找到validate方法。 - 内部的
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
相关产品推荐
相关产品推荐

