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 に答える