2009-04-08 10 views
0

J'essaie de créer un menu dynamique en lisant un fichier XML en utilisant jQuery. J'ai développé le code, et cela fonctionne très bien dans Firefox 3 et Chrome, mais cela ne fonctionne pas pour Internet Explorer 7/8.jQuery ne fonctionne pas dans Internet Explorer

Je poste mon code ci-dessous. Quel est le problème?

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); 
    } 

Le fichier XML a la structure suivante

<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> 
+0

Peut-être publier l'erreur particulière que vous obtenez? – TomHastjarjanto

+0

Qu'est-ce qui se passe exactement dans IE? – Aziz

+0

im prendre une conjecture sauvage, mais je parie que sa cause, vous avez parseXML outisde la portée de la fonction document onready .. sauf erreur IE se produit plus tôt –

Répondre

0

Pourriez-vous essayer:

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

il est juste une pensée bien.

+0

je viens de regarder votre site Web et OMG j'aime les minous !! –

+0

hey John, merci pour l'aide .. mais comme vous pourriez le remarquer .. c'était ma bêtise au mieux dans ce cas .. :) –

1

J'ai eu un problème similaire à analyser un retour XML AJAX, cela a fonctionné correctement sur FF, mais a échoué sur IE.

Le problème que j'avais était des nœuds supplémentaires entre les nœuds que vous attendez. IE ajoute des nœuds de texte avec des espaces au DOM XML où il y a des espaces dans le fichier XML. Je l'ai corrigé en changeant le XML généré afin qu'il n'y ait pas d'espace entre les noeuds.

0

Je peux me tromper, mais essayez ceci pour votre requête ajax à la place.

.ajax $ ({ Type: "GET", url: "menu.xml", dataType: "xml", succès: function (xml) {parseXML (xml);} });

Questions connexes