3

私が見ているアプリケーションは、次のような外部javascriptファイルをロードします。

$(function () {

    // Don't allow browser caching of forms
    $.ajaxSetup({ cache: false });

    var dialogs = {};

    var getValidationSummaryErrors = function ($form) {
        // We verify if we created it beforehand
        ...
        ...
        }
        return errorSummary;
    };

ファイルがいくつかの変数を設定し、getValidationSummaryErrorsという関数も宣言していることを理解しています。

私が理解していないのは、なぜこれがすべての範囲内にあるのかということです

$(function () {  ... }

これの目的は何ですか?「$(function(){}」なしでフラットファイル内の変数やものを宣言することはできませんか?

4

4 に答える 4

7

$(function() { ... });はの略で$(document).ready(function() { ... });、DOMの準備ができるまでコードが実行されないようにします。そうしないと、DOMに影響を与える一部のコードが正しく機能しない可能性があります。

http://api.jquery.com/ready/を参照してください

于 2012-04-22T05:46:12.717 に答える
3
$(function () {  ... });

コードが解析されたときではなく、ページ(DOM部分)がロードされた後に関数が実行されることを意味します。これにより、ページの読み込みが速くなり、JavaScriptを実行するために必要なすべてのものを利用できるようになります。

于 2012-04-22T05:46:03.763 に答える
3

$()はのショートカットでjQuery.ready()あり、ページDOMが完全にロードされた後にコードを実行します。特定のことを行う前に、ドキュメントの準備ができていることを確認したい場合があります。

于 2012-04-22T05:47:55.453 に答える
2

これは、$(document).ready(function(){...}) "の簡潔な表記です。注: jQueryドキュメントreadyは、DOMが読み込まれると起動します。ページ全体(画像となど)をロードします。

実際には、スクリプトを<head>実行するとすぐに実行されます。つまり、スクリプトがDOMと対話する場合は、準備ができている必要があります。

第三に、関心の分離のために必要です。理想的には、javaScriptとHTMLは別々のファイルにあります。これに従うと、HTMLにインラインスクリプトタグがまったく含まれなくなります。

于 2012-04-22T06:54:24.677 に答える