Javascript 如何在$(document)内调用函数。从外部准备好了吗

Javascript 如何在$(document)内调用函数。从外部准备好了吗,javascript,jquery,function,Javascript,Jquery,Function,如何从$(document).ready()外部调用函数lol(),例如: $(document).ready(function(){ function lol(){ alert('lol'); } }); 尝试: $(document).ready(function(){ lol(); }); 简单地说: lol(); 它必须在外部javascript中调用,如: function dostuff(url){ lol(); // call th

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

$(document).ready(function(){  
  function lol(){  
    alert('lol');  
  }  
});  
尝试:

$(document).ready(function(){
  lol();
});
简单地说:

lol();
它必须在外部javascript中调用,如:

function dostuff(url){
  lol(); // call the function lol() thats inside the $(document).ready()
}

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

但是,不需要在那里定义函数。为什么不简单地:

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

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

function dostuff(url) {
  lol(); // also works
}
您可以这样全局定义函数:

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

这是可行的,但不推荐。如果要在全局名称空间中定义某些内容,应该使用第一种方法。

简短版本:不能,它超出了范围。按如下方式定义方法,使其可用:

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

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

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

$(document).ready(function(){  
  window.lol = function(){  
    alert('lol');  
  }  
});

如果Prototype与jQuery一起安装,并且我们没有为jQuery设置冲突,那么情况会怎样

jQuery(document).ready(function($){  
     window.lol = function(){  
          $.('#funnyThat').html("LOL");
     }  
});

现在我们可以从任何地方调用lol,但我们是否引入了与原型的冲突?

您不需要,如果函数是在文档之外定义的。准备好了-但您想在文档中调用它。准备好了-这就是您要做的-这些回答让我走错了方向,不要再键入函数,只键入函数的名称

      $(document).ready(function () {
     fnGetContent();
      });
其中fnGetContent位于此处:

       function fnGetContent(keyword) {
            var NewKeyword = keyword.tag;
            var type = keyword.type;
            $.ajax({ .......

我认为在第二个示例中尝试定义全局函数时,为了避免歧义,可以使用以下内容:
window['lol']=function(){/*函数体*/}.verrrrrrrry gooooooooood这是一个伟大的解决方案,节省了我几个小时!在我找到的所有令人困惑或复杂的答案中,这是唯一对我有效的。这是回答实际问题的相反答案,但没有被否决,因为这对寻求答案的人还是有帮助的。我否决了,因为它没有回答问题