2 версии jQuery -> 2 документа.Зачем? - PullRequest
0 голосов
/ 25 октября 2011

У меня есть небольшая страница:

<!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 ]

1 голос
/ 25 октября 2011

Вызов document.write после загрузки страницы перезапишет всю страницу с параметром document.write.Попробуйте изменить что-то еще, например $().append или $().html.

т.е.

myjQuery(function() {
      $('body').append("<p>Where is foo and bar?!?</p>");
    });
0 голосов
/ 25 октября 2011

Проблема в том, что вы пишете теги <script> в документ, а не <head>

Пожалуйста, ознакомьтесь с этими инструкциями для получения полной информации о том, как динамически загружать jQuery.

В учебнике объясняется, как сделать это действительно хорошо.

Надеюсь, это поможет.

0 голосов
/ 25 октября 2011

Вы должны загрузить только одну версию или другую. Другими словами, на странице установлена ​​только одна библиотека jquery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...