我的几个页面同时使用JQuery和Protoype.由于我升级到JQuery的1.3版本,这似乎导致了问题,因为两个库都定义了一个名为'$'的函数.
JQuery提供了一个函数noConflict(),它将$的控制放弃到可能正在使用它的其他库.所以看起来我需要浏览所有看起来像这样的页面:
并将它们更改为如下所示:
然后,我应该能够为Prototype使用'$',为JQuery使用'$ j'(或'jQuery').我并不完全乐意在每个相关页面中复制这两行代码,并期望在某些时候有人可能忘记将它们添加到新页面.我宁愿能够做到以下几点
创建一个query-noconflict.js
"包含" 的文件j jquery.js
和上面显示的2行代码
在我的所有JSP/HTML页面中导入jquery-noconflict.js
(而不是jquery.js
)
但是,我不确定是否可以以我描述的方式将一个JS文件包含在另一个JS文件中?当然另一种解决方案就是直接将上面两行代码添加到jquery.js中,但如果我这样做,我需要记住每次升级JQuery时都要这样做.
目前你可以这样做:
然后,使用jQuery as $j()
和Prototype $()
.
似乎最简单的答案是咬紧牙关,并包括你的noConflict线.当然,如果您的页面没有使用共享标头,那么该解决方案可能不是最好的.