0

Wordpress サイトに追加されたいくつかのカスタム ファイルで jQuery を使用しており、これを使用して「$」ショートカットを使用できるようにしています。

jQuery(function ($) {
  $(selector).bla();
  // etc
}

ただし、コードを複数のファイルに分割したい場合は、この構造が各ファイルに存在する必要があり、一方の関数を他方のファイルから呼び出すことはできません。これを行う方法?特定の関数をグローバルとして宣言することはできますか?

4

4 に答える 4

1

requirejsを使用してモジュールを定義し、モジュールを依存関係として渡すことを検討することをお勧めします。また、これを使用してjQueryを依存関係として定義し、任意の変数名でローカルにスコープを設定できるようにすることもできます。

require(['jquery','somemodule','someothermodule'], function($,module1,module2) {
    $(function() {
        var mod1 = new module1();
        var mod2 = new module2();
        ...
    });
});
于 2012-12-22T06:59:19.647 に答える
1

次のようなものを使用できます。

var myFunc = function($) {
    function toExport() {
            alert($);
    }

    return toExport;
}(jQuery);​

必要なリソースを返すだけです(単一の関数、オブジェクト、または実際に必要なものであれば何でもかまいません)。

于 2012-12-22T07:03:24.437 に答える
0

グローバル スコープでは、コンストラクトの外でいつでも関数を宣言できます。jQuery(function() {...});

準備が整う前に DOM にアクセスすることはできません。つまり、それらの関数が DOM にアクセスする場合、それらの関数を外部で実行することはできませんjQuery(function() {...});


windowプロパティに値を割り当てることで、いつでもグローバル変数を作成することもできます。

window.theanswer = 42;

グローバル名前空間に多くの値を追加することはお勧めできません。モジュール式の JavaScript を作成してこの問題を解決する手法は他にもあります。tvanfosson の回答を参照してください

于 2012-12-22T06:56:30.360 に答える
0

jQueryUI は、実際には同様の方法で記述されています。

(function( $, undefined ) {
    ...
}( jQuery ) );

このようにして、は関数$の同義語であることが保証されjQuery、キーワードundefinedは未定義の値を持つパラメーターとして定義されます。一部のブラウザーでは未定義を同じ方法で処理するわけではないため、このundefined部分は実際にはいくつかの細かい問題を修正します。

于 2012-12-22T06:49:55.393 に答える