如何从外部调用$(document).ready中的函数

Mar*_*ter 32 javascript jquery function

如何从$(document).ready()外部调用函数lol(),例如:

$(document).ready(function(){  
  function lol(){  
    alert('lol');  
  }  
});  
Run Code Online (Sandbox Code Playgroud)

尝试:

$(document).ready(function(){
  lol();
});
Run Code Online (Sandbox Code Playgroud)

简单地说:

lol();
Run Code Online (Sandbox Code Playgroud)

它必须在外部javascript中调用,如:

function dostuff(url){
  lol(); // call the function lol() thats inside the $(document).ready()
}
Run Code Online (Sandbox Code Playgroud)

nic*_*bot 58

在窗口对象上定义函数,使其在另一个函数范围内变为全局:

$(document).ready(function(){  
  window.lol = function(){  
    alert('lol');  
  }  
});
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很棒的解决方案,节省了我几个小时! (2认同)

cle*_*tus 37

在定义函数的块之外,它超出了范围,您将无法调用它.

但是,没有必要在那里定义功能.为什么不简单:

function lol() {
  alert("lol");
}

$(function() {
  lol(); //works
});

function dostuff(url) {
  lol(); // also works
}
Run Code Online (Sandbox Code Playgroud)

可以像这样全局定义函数:

$(function() {
  lol = function() {
     alert("lol");
  };
});
$(function() {
  lol();
});
Run Code Online (Sandbox Code Playgroud)

这有效但不推荐.如果要在全局命名空间中定义某些内容,则应使用第一种方法.