4

重複の可能性:
JQuery-複数の$(document).ready…?

jQuery DocumentReadyIE内でjQueryを使用しているJSコードがあります。

$(function() {

});

ページ上で複数のjQueryスクリプトを実行していますが、すべてが1つに含まれていますが$(function() { });、スクリプトを複数の準備ができたハンドラーに分割する必要がある理由はありますか?IE:

$(function() {
      // First Script
});

$(function() {
      // Second Script
});

//etc. 

または、1つの中にmultplieスクリプトを含めても大丈夫ですか?IE:

$(function() {
      // First Script
      //Second Script
      //etc. 
});

1つで十分だと思いますが、複数使用する理由がないことを確認したいと思います。

4

3 に答える 3

7

スクリプトに複数のdocument.readyハンドラーを含めることができます。jQueryはとにかく実行する前にそれらを単一のハンドラーにマージします。ただし、実際には多くのdocument.readyハンドラーを用意する必要はありません。1つで十分です。また、スクリプトを常にDOMの最後、終了タグの直前に配置する</body>場合は、document.readyハンドラーを使用する必要はありません。

例えば:

<html>
<head>
    <title></title>
    ... your CSS references come here
</head>
<body>
    ... the markup of the body comes here ...

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        // you don't need to use any document.ready handlers here =>
        // you could directly write your scripts inline or reference them
        // as external resources. At this stage the DOM will be ready
    </script>
</body>
</html>
于 2013-01-06T21:31:10.933 に答える
4

それがどのように機能するかに関しては、まったく違いはありません。

ただし、組織化には役立ちます。

一方、それはより多くのjQueryを実行する必要があることを意味します。

于 2013-01-06T21:31:16.830 に答える
0

すべてのスクリプト/関数を単一のreadyイベント内にラップするか、すべてのスクリプトをhtmlの後に配置して、この時点でDOMが既にロードされているため、readyイベントを待つ必要がないようにすることができます。

<html>
<head>
    <!-- Style sheets Go Here -->
</head>
<body>
    <!--HTML Goes Here -->
    <!-- Scripts Go Here -->
</body>
</html>
于 2013-01-06T21:44:07.267 に答える