0

你能做这个吗?

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

我有一些像这样的代码几乎在任何地方都能正常工作,但后来我发现它在 FF 9.0.1 中只有大约 80% 的时间工作。解决方法是这样做:

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

现在我有点困惑为什么这是必要的

编辑:我可以看到这有点令人困惑。也许我应该做的是:

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

$(function(){
    myFunction();
});
4

2 回答 2

1

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

 $(function(){})
 // is equivalent to 
 $(document).ready(function(){}). 

对您来说最好的选择是创建一个函数,如:

 function myFunction(){  

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

 }

 $(function(){

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

 })    
于 2012-06-08T13:20:35.830 回答
0

像这样:

var myFunction;
(myFunction = function(){
  $(function(){
    // jQuery code here
    $("#myField").hide();
  })    
}) ();
于 2012-06-08T13:13:13.160 回答