$(document).ready 是 jQuery 提供的一个方法,用于确保文档加载完成后再运行 JavaScript 代码。然而,有时候我们需要在 $(document).ready 外部调用一些函数。这篇文章将介绍如何实现这个目标。
方案一:全局变量
一种解决方案是将函数定义为全局变量,这样就可以在 $(document).ready 之外调用它了。但是,这种做法会破坏命名空间,可能会导致命名冲突和不可预测的行为,因此不是推荐的做法。
// 不推荐的做法 var myFunc = function() { // 函数体 }; $(document).ready(function() { // 在这里调用 myFunc() });
方案二:使用立即执行函数
另一种解决方案是使用立即执行函数(Immediately Invoked Function Expression,IIFE),将函数作为参数传递给 IIFE,并在 IIFE 内部调用该函数。IIFE 可以创建一个私有作用域,防止全局变量污染。
-- -------------------- ---- ------- ----------- - --- ------ - ---------- - -- --- -- ---------------------------- - -- ----- -------- --- -----
方案三:将函数声明提升到全局
第三种解决方案是将函数声明提升到全局作用域。这种做法与方案一类似,但是它不会破坏命名空间,因为函数声明不会创建一个新的变量。
// 将函数声明提升到全局 function myFunc() { // 函数体 } $(document).ready(function() { // 在这里调用 myFunc() });
总结
以上三种方法都可以在 $(document).ready 外部调用函数,但是它们的实现方式不同,每种方式都有其优缺点。
如果您需要在多个文件之间共享函数,可以使用模块化的设计模式。如果您只需要在一个文件中使用该函数,则建议使用第二种或第三种方法。
希望这篇文章能够对您有所帮助!
参考代码:
-- -------------------- ---- ------- -- -------- --- ------ - ---------- - ------------------- --------- -- ---------------------------- - --------- --- -- ------------ ----------- - --- ------ - ---------- - ------------------- --------- -- ---------------------------- - --------- --- ----- -- -------------- -------- -------- - ------------------- --------- - ---------------------------- - --------- ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30915