我正在开发一个项目,其中有多个库加载到头部。正在使用的CMS是WordPress。
通过wp_head,最新版本1.7.1有一个排队的脚本,但在它下面有一组以1.4版开头的脚本文件。
这是一个简单的可视化流程图:
<head>
<script jQuery 1.7.1>
<script jQuery 1.4>
<script Colorbox>
[7 more scripts dependent on 1.4 here]
</head>
...
<footer>
<scripts that can use either 1.7.1 or 1.4>
</footer>
我的理解是,由于jQuery 1.4低于1.7.1,因此它实际上是正在使用的库。
是否可以重新排列脚本,以便那些依赖于1.4的脚本只能被1.4使用,其余的可以被1.7.1使用?例如:
<head>
<script jQuery 1.4>
<script Colorbox>
[7 more scripts dependent on 1.4 here]
<script jQuery 1.7.1>
</head>
...
<footer>
<scripts that can use either 1.7.1 or 1.4>
</footer>
看看我如何向下移动1.7.1? 1.7.1脚本位于1.4脚本下方的位置会影响1.4脚本吗?
有没有办法检测整个页面中使用的jQuery版本?
答案 0 :(得分:2)
请在“依赖于1.4的那些”中定义那些,仅仅为网站的一个部分工作的版本永远不是一个好主意。如果是多个运行相同标头的网站,您可能需要尝试加载php(数据库)字段并设置需要在那里使用的库。我的建议是,如果您的代码中确实有一部分不能与新库一起使用,请更新该代码。并始终使用最新的JQuery:)
答案 1 :(得分:0)
这应该可以用作jQuery.noConflict(true)允许您将jQuery分配给任何全局变量和从全局命名空间中删除原始jQuery变量。
<head>
<script jQuery 1.4>
<script type="text/javascript">
var jq14 = jQuery.noConflict(true);
</script>
[7 more scripts dependent on 1.4 here] // do a find and replace in all these, replacing $ and jQuery by jq14
<script jQuery 1.7.1>
</head>
...
<footer>
<scripts that can use either 1.7.1 or 1.4>
</footer>
在同一页面上加载两个jQuery几乎不是最好的做法,但是如果你的客户不愿意为升级上面的shoudl付费,那么希望至少提供一个可行的妥协。