1

我正在使用prototype和script.aculo.us的组合在我的asp.net页面中实现灯箱效果。我的页面中也包含jquery。我的页面中有几个DIV标签,但是在包含原型文件之后我的页面头部,我无法使用 jquery 读取我的 javascript 中的 div

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

给我一个错误,说对象为空但是

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

您应该在noConflict 模式下使用 jQuery 。然后使用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 回答