2个版本的jQuery - > 2个文件。为什么?

时间:2011-10-25 17:03:08

标签: javascript jquery dom

我有一个小页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title></title>
  <script type="text/javascript" src="jquery-1.4.2.js"></script>
  <script type="text/javascript" src="temp.js"></script>
</head>
<body>
<p>foo</p>
<p>bar</p>
</body>
</html>

我正在尝试加载两个不同版本的jQuery:

// temp.js
jQueryScriptOutputted = false;
initJQuery = function() {

  //if the jQuery object isn't available
  if (typeof(myjQuery) == 'undefined') {

    if (!jQueryScriptOutputted) {
      //only output the script once..
      jQueryScriptOutputted = true;

      //output the script (load it from google api)
      document.write("<script type=\"text/javascript\" src=\"jquery-1.6.4.js\"></script>");
      document.write("<script type=\"text/javascript\">var myjQuery = $.noConflict(true);</script>");
    }
    setTimeout("initJQuery()", 50);
  } else {
    myjQuery(function() {
      // Check jQuery versions
      console.log('myjQuery version = ' + myjQuery().jquery);
      console.log('$ version = ' + $().jquery);
      console.log('jQuery version = ' + jQuery().jquery);

      // Get the data of the actual poll
      document.write("Where is foo and bar?!?");
    });
  }

}
initJQuery();

但似乎这会加载两个不同的文档。我的意思是,当你打开页面时,段落会丢失。怎么来的?!?

3 个答案:

答案 0 :(得分:1)

在页面加载后调用document.write将使用document.write参数覆盖整个页面。请考虑使用$().append$().html之类的其他内容来更改标记。

myjQuery(function() {
      $('body').append("<p>Where is foo and bar?!?</p>");
    });

答案 1 :(得分:0)

您只能加载一个版本或另一个版本。 换句话说,只有一个jquery库安装到页面。

答案 2 :(得分:0)

问题是您要将<script>标记写入文档而不是<head>

请参阅这些instructions for full information on how to dynamically load jQuery.

该教程解释了如何做得非常好。

希望这有帮助。