js 引入juery.js 和Prototype.js冲突解决($,$F)

在页面中同时存在jquery 和 prototype ,当用到 $ 的时候,难免产生冲突,所以一定要区分开来:

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
    j= $; 
 </script> 
<script type="text/javascript" src="prototype.js" ></script>

这样做了以后,在用到jquery 的地方用 j 来替代 $ 符号,而 prototype 的 $ 函数照常使用,当然其实也不用定义“ j= $; ” ,在用到 jquery 的地方直接用 jQuery 来替代 $ 符号也一样的。

$("") 改成jQuery("");  $ 改成 j

我的js包引用方法:

head标签里添加jquery.js, prototype .js放到底部去应用,还有需要强调的一点就是j=$这个js代码jquery.js尽量放在所有js包的最上面,因为后面的js包可能会引用到jquery包,如果不这样做的,会导致后面的js包属性和方法不支持

还有一个冲突网上找到的:Array.prototype.push 方法冲突。转载下:

这个冲突很严重,直接导致jQuery 的级联筛选无效。比如正常情况下,你可以使 用 $("span",$("#main")) 来获取 ID为 main 的元素下面的 span 元素。但如果页面中同时使用了 prototype 框架相关,那抱歉 的很,你永远获取不到了。原因你可以调试跟踪自己查看 jQuery 的源代码。 
解决方法: 
    <script type="text/javascript"> 
        var fnArrayPush = Array.prototype.push; 
        $().ready(function(){ 
            Array.prototype.push = fnArrayPush; 
             init(); 
        });     
     </script>

时间: 2024-11-09 19:19:46