2

面接でいくつか質問があります

  1. $(function(){});とはどう違いますか$(document).ready(function(){});

  2. $(function(){});とどのように呼ばれていますか はどう違いvar func=function(){};ますか?

  3. 次のスクリプトが与えられた場合

    <script language="javascript">
    $(function()
    {
       var id=$("cssID");
       //do something with your id
       //your event to be added here
    });
    </script>
    

    onmouseoutたとえば、で動作するイベントをどのように追加できますidか?

ここに私の答えがあります:

  1. どちらも同じです。どちらも、ページ ドキュメントの読み込みが終了したときに実行するためのものです。

  2. 最初のものは自動的に呼び出され、2 番目のものは名前付き参照を介して呼び出されます。つまりfunc.called()、たとえば。

  3. このようなもの:

    $(function()
    {
        var id=$("cssID");
        //do something with your id
        //Oki
        id.onmouseout
        (function(){
          //do something
        });
    });
    

しかし、私の教授は、私が3つすべてで間違っていたと言います。彼女は私が確信が持てないことを説明し、あえて尋ねませんでした。彼女は私に腹を立てていました。正しい答えは何ですか?なぜ私の答えは間違っているのですか?

4

3 に答える 3

1

これらは、jQuery (別名 jQuery DOM Ready) で通常使用される Document Ready 関数のさまざまなタイプです。多くの開発者は、理由を知らずにそれらを使用しているようです。そのため、あるバージョンを別のバージョンよりも選択する理由を説明しようと思います。ドキュメントの準備完了関数は、ページ要素が読み込まれた後に起動する自己実行関数と考えてください。

Document Ready 関数の使用方法の詳細については、「jQuery 関数を宣言する場所」を参照してください。

ドキュメントレディの例1

$(document).ready(function() {
    //do jQuery stuff when DOM is ready
});

ドキュメントレディの例 2

$(function(){ 
    //jQuery code here 
});

これは、例 1 と同等です。文字通り同じ意味です。

ドキュメントレディの例3

jQuery(document).ready(function($) {
    //do jQuery stuff when DOM is ready
});

ドキュメントレディの例 4

(function($) { 
    // code using $ as alias to jQuery
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);
// other code using $ as an alias to the other library

ドキュメントレディの例 5

$(window).load(function(){  
     //initialize after images are loaded  
});

こちらが参考になるリンクです。

于 2012-08-23T04:59:16.717 に答える
0

以下の間に違いはありません。

$(functionValue);

と:

$(document).ready(functionValue);

だからあなたの教授はそこで間違っています。2 番目の例は、まったく異なります。そのうちの 1 つはドキュメント対応で実行され、jQuery が必要です。もう 1 つは、JavaScript 変数に割り当てられた単なる関数リテラルです。

3 つ目については、おそらくon. onmouseoverを使用する場合は正しいですがget、実際には最善の方法ではありません。そこで行っているように呼び出すことは絶対にありません-それは完全に間違っています。

id.on('mouseout', yourHandler);

また

id.mouseout(yourHandler);
于 2012-08-23T04:50:23.897 に答える
0

1. どちらも同じです。どちらも、ページ ドキュメントの読み込みが終了したときに実行するためのものです。

これは半分正しい。それら同じです。最初のものは 2 番目のものを書くための簡単な方法ですが、ドキュメントの読み込みが終了したときに実行されるのではなく、DOM の準備ができたときに実行されます (その時点で、画像などのリソースがまだ読み込まれている可能性があります)。 .

2. 最初のものは自動的に呼び出され、2 番目のものは名前付き参照を介して呼び出されます。つまりfunc.called()、たとえば。

また半分右。最初の例では、質問 1 に従って DOM の準備が整うと、無名関数が自動的に呼び出されます。2 番目の例は、 で呼び出すことができますfunc()。あなたは.calledそこにその部分を持っていないでしょう。funcまたは、 as などのパラメータとして渡すこともできます$(document).ready(func)

Q3 var id=$("cssID");

onmouseoutたとえば、で動作するイベントをどのように追加できますidか?

$("cssID")"cssID"セレクターに一致した要素の数に応じて、0 個以上の要素を含む jQuery オブジェクトを作成します。変数はそのidjQuery オブジェクトを参照します。問題が、これらの一致する要素にイベント ハンドラーを割り当てる方法である場合は、次のようにします。

id.mouseout(function() { /* some code */. });
// OR
id.on("mouseout", function() { /* some code */ });

jQuery でイベントを処理する場合、イベント名に「on」を使用しないため、「onmouseout」ではなく「mouseout」になります。

したがって、3に対するあなたの答えはほぼ正しかったです。

(ただし、ドキュメント"cssID"にタグがない限り、実際にはどの要素にも一致しないセレクターです...)<cssID>

于 2012-08-23T05:43:35.843 に答える