在一个立即执行的函数中加载jQuery的JS加载顺序

在一个立即执行的函数中加载jQuery的JS加载顺序,jquery,Jquery,你能做到吗 var myFunction = function(){ $(function(){ // jQuery code here $("#myField").hide(); }) }(); 我有一些这样的代码,几乎在任何地方都可以正常工作,但后来我发现它在FF9.0.1中只工作了大约80%的时间。解决方法是这样做: var myFunction = function(){ $(function(){ //

你能做到吗

var myFunction = function(){
    $(function(){
        // jQuery code here
        $("#myField").hide();
    })    
}();
我有一些这样的代码,几乎在任何地方都可以正常工作,但后来我发现它在FF9.0.1中只工作了大约80%的时间。解决方法是这样做:

var myFunction = function(){
    $(function(){
        // jQuery code here
        $("#myField").hide();
    })    
};
myFunction();
现在我有点困惑为什么这是必要的

编辑: 我看这有点混乱。也许我应该做的是:

var myFunction = function(){ 
    // jQuery code here
    $("#myField").hide();       
};

$(function(){
    myFunction();
});
像这样:

var myFunction;
(myFunction = function(){
  $(function(){
    // jQuery code here
    $("#myField").hide();
  })    
}) ();

问题是您没有正确定义函数,然后放入jQuery代码,当
JavaScript
解析器读取您的代码时,它将忽略var定义并执行您在document ready上定义的
jQuery
。如果您不知道:

 $(function(){})
 // is equivalent to 
 $(document).ready(function(){}). 
您的最佳选择是创建一个函数,如:

 function myFunction(){  

    $("#myField").hide();

 }

 $(function(){

    //after whenever you want it do 
    myFunction();

 })    

是的,你可以这样做,但是为什么呢?我使用名称空间是因为在同一个页面上运行着许多函数。这只是演示问题所需的最小片段。虽然有3000多行代码,但第一个代码段应该可以工作,也许错误隐藏在其他2900行的某个地方?这实际上与OP已有的代码相同,不会改变任何东西。这里不需要括号,变量赋值已经是一种表达,当然你是对的,我想现在就这样写你现在的写作方式和op的第一个片段完全一样,事实并非如此。OP的代码片段将
myFunction
的值设置为未定义。我自己意识到了这一点并编辑了我的文章。然后我发现了你的答案。我认为这可能是最好的方法。