2

だから私はこのコードをjquery-ui docsで見ていますが、なぜすべてのステートメントがラップされているのだろうか$(function() {...});

jquery のドキュメントでは$()、オブジェクトを強化すると書かれていますが、ここでそれが必要な理由がわかりません。それは慣習ですか、それとも実際に意味がありますか?

<script>
$(function() {
    $( "#draggable" ).draggable();
    $( "#droppable" ).droppable({
        drop: function( event, ui ) {
            $( this )
                .addClass( "ui-state-highlight" )
                .find( "p" )
                    .html( "Dropped!" );
        }
    });
});
</script>
4

3 に答える 3

5

$(function() {});$(document).ready(function() {});すべての意図と目的において、 ;と同じです。ドキュメントの準備ができる少し前に呼び出されると思いますが。

ドキュメントの作成が終了したら、関数内のコードを呼び出します。これで、関数が読み込まれるまでにDOMツリーが作成されます。これにより、それらのオブジェクトがその時点で作成されていることを認識した上で、DOMを安全に操作できます。

次に例を示します。

<script>
//This code is called straight away, your DOM hierarchy may not
//be complete and the object #draggable may not have been created yet,
//as such draggable() may not work properly.
$( "#draggable" ).draggable();

//This code is called once the DOM tree is complete,
//as such you know all your objects have been created
$(function() {
    $( "#draggable" ).draggable();
    $( "#droppable" ).droppable({
        drop: function( event, ui ) {
            $( this )
                .addClass( "ui-state-highlight" )
                .find( "p" )
                    .html( "Dropped!" );
        }
    });
});
</script>

より詳細な説明については、 jQueryのドキュメントを参照してください

于 2012-08-02T14:53:10.843 に答える
3

これは略記です$(document).ready(function() {})

解析中に検出されたときに実行されるのではなく、ドキュメント全体が読み込まれると実行されます。

于 2012-08-02T14:53:20.470 に答える
2

また、ステートメント ブロック内の項目のコンテキストも作成します。これは、$(document).ready(function() {}), document ready と同じくらい重要です。

于 2012-08-02T14:57:36.273 に答える