jQuery не работает в Internet Explorer - PullRequest
0 голосов
/ 08 апреля 2009

Я пытаюсь создать динамическое меню, читая файл XML с помощью jQuery. Я разработал код, и он отлично работает в Firefox 3 и Chrome, однако он не работает в Internet Explorer 7/8.

Я публикую свой код ниже. Что с ним?

  var menu ="";
  $(document).ready(function()
  {
      $.ajax({
          type: "GET",
          url: "menu.xml",
          dataType: "xml",
          success: parseXml
      });
  });

  function parseXml(xml)
  {
      $(xml).find('link').each(function(x){
          var link = $(this);
          var title = link.attr("name");

          menu += "<div class='AccordionPanel AccordionPanelClosed'>";
          menu += "<div class='AccordionPanelTab'><span></span>";
          menu += "<a href='javascript:;'>"+title+"</a></div>";

          link.find("inLink").each(function(z){
              var intitle = $(this).attr("name");
              menu += "<div class='AccordionPanelContent'>";
              menu += "<ul><li>";
              menu += "<a href='"+$(this).attr("ref")+"'>"+intitle+"</a>";
              menu += "</li></ul></div>";
          });
          menu += "</div>";
      });

      $("#LeftMenu").append(menu);
  }

Файл XML имеет следующую структуру

  <links>
      <link name="Reception" ref="index.html">
          <inLink name="Registration" ref="registration.html"/>
          <inLink name="Inquiry" ref="#"/>
      </link>
      <link name="Records" ref="#">
          <inLink name="Records" ref="#"/>
          <inLink name="Records2" ref="#"/>
      </link>
  </links>

Ответы [ 3 ]

1 голос
/ 09 апреля 2009

У меня была похожая проблема при синтаксическом анализе возврата XML AJAX, он работал нормально на FF, но не работал на IE.

У меня была проблема с дополнительными узлами между ожидаемыми вами узлами. IE добавляет текстовые узлы с пробелами в XML DOM, где в файле XML есть пробелы.

Я исправил это, изменив сгенерированный XML, чтобы между узлами не было пробелов.

0 голосов
/ 24 апреля 2009

Я могу ошибаться, но попробуйте вместо этого запрос ajax.

$. Ajax ({ тип: "GET", URL: "menu.xml", dataType: "xml", success: function (xml) {parseXml (xml);} });

0 голосов
/ 08 апреля 2009

Не могли бы вы попробовать:

 $("#LeftMenu").append($(menu));

это всего лишь мысль.

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