【发布时间】:2010-10-01 20:52:34
【问题描述】:
我的几个页面同时使用了 JQuery 和 Protoype。自从我升级到 JQuery 1.3 版后,这似乎引起了问题,因为这两个库都定义了一个名为“$”的函数。
JQuery 提供了一个函数 noConflict() ,它将 $ 的控制权交给可能正在使用它的其他库。所以看来我需要浏览所有看起来像这样的页面:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
</head>
并将它们更改为如下所示:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
</head>
然后我应该能够将“$”用于 Prototype,将“$j”(或“jQuery”)用于 JQuery。我对在每个相关页面中复制这两行代码并不完全满意,并希望在某些时候有人可能会忘记将它们添加到新页面中。我希望能够做到以下几点
- 创建一个文件 j
query-noconflict.js,其中“包含”jquery.js和上面显示的 2 行代码 - 在我的所有 JSP/HTML 页面中导入
jquery-noconflict.js(而不是jquery.js)
但是,我不确定是否可以按照我描述的方式将一个 JS 文件包含在另一个文件中?当然,另一种解决方案是直接将上面的 2 行代码添加到 jquery.js,但如果我这样做,我需要记住每次升级 JQuery 时都这样做。
【问题讨论】:
-
我提供的答案对你有用吗?
-
不知道,我问这个问题已经 3 年了...
-
好的.. :) 我错过了.. :) 但我认为这个原则是正确的,因为我尝试过......
-
显然这是旧的,但我有一种情况,我不得不在 63 个 html 文件中更改 5 行代码(我没有建立网站)。一些正则表达式替换和替换文件在几秒钟内就完成了。 Notepad++ 会在有限的程度上做到这一点,而 submlime 文本编辑器就像冠军一样。
-
@DavidHobs:崇高+1!这是自切片面包以来最好的东西!
标签: javascript jquery prototypejs