1

プロトタイプと script.aculo.us の組み合わせを使用して、asp.net ページにライトボックス効果を実装しています。ページには jquery も含まれています。ページにはいくつかの DIV タグがありますが、プロトタイプ ファイルをページの頭、jquery を使用して JavaScript の div を読み取ることができません

var div = $("#divLeftSideModelsList"); 
alert(div)

オブジェクトがnullであるというエラーが表示されますが、

var div = document.getElementById("divLeftSideModelsList")

私にオブジェクトを与えています。

これは、jQuery と他のフレームワークとの間にいくつかの競合があるためですか?

ご意見をお聞かせください

4

4 に答える 4

6

これを読んでください:http://docs.jquery.com/Using_jQuery_with_Other_Libraries

良い例を示します:)

$-関数のオーバーライド

ただし、jQuery と他のライブラリの両方がロードされた後はいつでも jQuery.noConflict() を呼び出すことで、そのデフォルトをオーバーライドできます。例えば:

 <html>
 <head>
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script>
     jQuery.noConflict();

     // Use jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });

     // Use Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

これにより、$ が元のライブラリに戻ります。アプリケーションの残りの部分では引き続き「jQuery」を使用できます。

さらに、別のオプションがあります。jQuery が別のライブラリと競合しないことを確認したいが、短い名前の利点が必要な場合は、次のようにすることができます。

 <html>
 <head>
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script>
     var $j = jQuery.noConflict();

     // Use jQuery via $j(...)
     $j(document).ready(function(){
       $j("div").hide();
     });

     // Use Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>
于 2009-06-09T16:27:52.913 に答える
2

jQuery はnoConflict モードで使用する必要があります。そして、jQuery()の代わりに使用し$()ます。

于 2009-06-09T16:28:13.787 に答える
0

奇妙なバグ。とにかく、prototype と jQuery の両方がグローバル変数 $ を再定義します。

これを読んで、 jQuery が他のライブラリとうまく連携する方法を理解してください。

基本的に、 jQuery.noConflict() を呼び出すと、他のライブラリが使用できるように $ 変数がそのままになると言われています

于 2009-06-09T16:28:28.247 に答える
-2

このコードは機能しますか:

var div = jQuery("#divLeftSideModelsList");
alert(div);
于 2009-06-09T16:24:23.113 に答える