0

私は今、自分のプロジェクトを仕上げています。各ページにたくさんの JavaScript コードがあることがわかります。「.js」ファイルとして含まれているのではなく、ページ自体にコード化されています。私はそれは悪い考えだと思ったので、今はそれらをすべて 1 つの .js ファイルに入れて、各ページに含めようとしています。

私が今直面している唯一の問題はこれです: 一部の関数は特定のページでのみ呼び出され、jquery プラグインの組み込みに依存しています。ただし、すべてのページにプラグインが必要なわけではありません。

例: ホームページでは、Country ドロップボックスを City ドロップボックスとチェーンする必要があるため、jquery 用の jchained.js プラグインが必要です。私が使用する必要があるコードは次のとおりです。

$(function(){
    $("#city").chained("#country");
});

この関数を .js ファイルに追加し、ドロップボックスをチェーンする必要のないページを開くと、論理的にエラーが発生します。

TypeError: $("#city").chained は関数ではありません

これを正しく理解していれば、.js ファイルをさまざまなプラグインのさまざまな機能で使用するには、すべてのプラグインをすべてのページに含める必要がありますか?

あなたのアイデアと助けをありがとう。

4

2 に答える 2

1

コードの構造や現在のコードの複雑さに完全に依存します。

当面の解決策は、

  1. 各ページに id を付けます (body タグの場合もあります)。
  2. すべてのコードを単一の外部 JavaScript ファイルに入れます。
  3. body 要素に必要な id がある場合にのみ、その特定のページ用のコードを実行します。何かのようなもの :

    if ( $('body').attr('id') == "home" ) { /* ホームページ JS をここに追加 */ }

これを試すことができます。

私が間違っている場合は修正してください。

于 2012-07-29T18:00:58.737 に答える
1

個人的には、大量の .js ファイルを含めることを心配する必要はないと思います。これは Web 開発の一部です。もう 1 つのオプションは、少し面倒ではありますが、関数が存在することを確認し (プラグイン .js が含まれている場合)、存在する場合は呼び出すことができます。

if(typeof yourFunctionName == 'function') {
    yourFunctionName();
}
于 2012-07-29T18:01:16.800 に答える