2012-04-12 3 views
7

latest-releasesample-projectRequireJSにダウンロードしました。彼らのdocumentation impliesがロードされたものは、関連する関数のパラメータリストに(対応する順序で)渡されます。RequireJSがjQueryを関数エイリアスに渡すのはなぜですか?

私はそれを試してみることにしました...しかし、それは動作していないようです!

  • Firebug(ネットタブ)ロードされるようjQueryを示していますので、RequireJSはobvioulsyその一部が正常に
  • Firebug(コンソールタブ)ショー '$関数ではありません'

やった私の質問は:エイリアスに値が設定されないのはなぜですか?

MYコードは次のようになります:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script src="Scripts/require.js" type="text/javascript"></script> 

    <script type="text/javascript"> 

     require(["scripts/jQuery/Core/jquery-1.7.2.min"], function ($) { 

      // jQuery is not passed-into the function, so the alias fails! 
      $(function() { 
       var stop = ""; 
      }); 
     }); 

    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    </form> 
</body> 
</html> 

THIERサンプルは以下のようになります。

//Inside scripts/main.js 
require(["some/module", "a.js", "b.js"], function(someModule) { 
    //... 
}); 
+1

Bueller?ビーラー? –

答えて

16

jQueryの特別な名前 "jqueryの" によってロードする必要があり、それ以外の場合は」勝ちましたt自身を登録します(jQueryは名前付きの定義を使用するため)。なぜ定義という名前の主な理由である

// create an alias that points to proper file 
require.config({ 
    paths : { 
    jquery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min" 
    } 
}); 

// require jquery usign the path config 
require(["jquery"], function ($) { 
    console.log($); 
}); 

は(あなたが同じファイル内に複数のモジュールがある場合)アンチパターンとみなされ、必要なときだけ使用する必要があります。

+0

ありがとう、ありがとう、ありがとう、ありがとう!これがナッツを運転していた! –

+0

ありがとう!私がスタンドアローンのjQueryファイルを組み込むために働いた唯一の答えです。 – nirazul

0

あなたのスクリプトフォルダは「スクリプト」か「スクリプト」ですか?

"Scripts/require.js"と "scripts/jQuery/Core/jquery-1.7.2.min"をリクエストしています。 FirebugのNetタブを見てください...そこに404を生成していると思います。

2

RequireJS + jQueryサンプルプロジェクトの "README.md"を必ず読んでください。 jQueryの使用には、初期設定時にプロジェクトにどのように取り組むべきかを決める必要があります。しかし、一番良いものを見つけてそれを実装すれば、それは再び問題になるはずはありません。

多くの複雑さは、jQueryが真のAMDモジュールではないことに由来しています。定義関数を使用できることが検出された場合、コードベースにハックを定義するだけです。たとえば、jQueryモジュール名は、自分でラップしない限り、常に "jquery"(小文字の 'q'に注意)であることを意味します。したがって、設定にパスを定義する場合は、 "jquery"再び、小文字の「q」で)、または不一致があります。最初にRequireJSをプロジェクトに設定すると、私たちはそれに気付きました(キー "jQuery"という名前)。

+0

私は...ありがとう! –

関連する問題