哪个版本的jQuery在加载了多个库的网站上运行?

时间:2012-02-04 02:26:20

标签: javascript jquery

我正在开发一个项目,其中有多个库加载到头部。正在使用的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版本?

2 个答案:

答案 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付费,那么希望至少提供一个可行的妥协。