jQuery -prototype冲突

Shy*_*yju 1 jquery conflict prototypejs

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

var div = $("#divLeftSideModelsList"); 
alert(div)
Run Code Online (Sandbox Code Playgroud)

给我一个错误说该对象为null但是

var div = document.getElementById("divLeftSideModelsList")
Run Code Online (Sandbox Code Playgroud)

给了我这个对象.

这是因为jQuery和其他框架之间存在一些冲突吗?

请指教

Sha*_*sri 6

请阅读:http://docs.jquery.com/Using_jQuery_with_Other_Libraries

显示好例子:)

超越$ -FUNCTION

但是,您可以在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>
Run Code Online (Sandbox Code Playgroud)

这将使$返回其原始库.您仍然可以在应用程序的其余部分使用"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>
Run Code Online (Sandbox Code Playgroud)