1

Je rencontre un problème avec IE8 (rien de nouveau ici). L'erreur que je reçois n'a pas beaucoup de sens car elle ne se produit pas sur FF ou Chrome. Voici le code:jQuery 1.4.2 Erreur IE8 sur la page attendue ')'

function remComp(id, trade) { 
      $.ajax({ 
       url: "functions/removePriceSurveyComparison.php", 
       type: "POST", 
       async: true, 
       data: "id="+id, 
       dataType: "xml", 
       success: function(xmlData) { 
        if ($("success", xmlData).text() == "true") { 
         loadComps(trade); 
        }// TODO create error handler 
       } 
      }); 
     } 

Dans cette fonction, il se plaint de la ligne sur laquelle le rappel réussi est défini. Cette fonction n'a même pas encore été appelée? Mais quand il est appelé, il fonctionne parfaitement bien, mais crée toujours de nouvelles erreurs?

La fonction qui est appelée est bien:

 function loadComps(trade) { 
      $.ajax({ 
       url: "functions/loadPriceSurveyComparisons.php", 
       type: "POST", 
       async: true, 
       data: "trade="+trade, 
       cache: false, 
       dataType: "html", 
       success: function(comps) { 
        $("#current"+trade).html(comps); 
       } 
      }); 
     } 

La deuxième fonction est essentiellement obtenir appelé 3 fois lorsque la page se charge. Aucun conseil?

Voici le bloc de script complet ainsi:

 function remComp(id, trade) { 
      $.ajax({ 
       url: "functions/removePriceSurveyComparison.php", 
       type: "POST", 
       async: true, 
       data: "id="+id, 
       dataType: "xml", 
       success: function(xmlData) { 
        if ($("success", xmlData).text() == "true") { 
         loadComps(trade); 
        }// TODO create error handler 
       } 
      }); 
     } 

     function addComp(trade, albId, compId) { 
      $.ajax({ 
       url: "functions/addPriceSurveyComparison.php", 
       type: "POST", 
       async: true, 
       data: "trade="+trade+"&albId="+albId+"&compId="+compId, 
       cache: false, 
       dataType: "xml", 
       success: function(xmlData) { 
        if ($("success", xmlData).text() == "true") { 
         loadComps(trade); 
        }// TODO add an error handler 
       } 
      }); 
     } 

     function updateComp(id, trade) { 
      var albId = $("select#albProd"+id).val(); 
      var compId = $("select#compProd"+id).val(); 

      $.ajax({ 
       url: "functions/updatePriceSurveyComparison.php", 
       type: "POST", 
       async: true, 
       data: "id="+id+"&albId="+albId+"&compId="+compId, 
       cache: false, 
       dataType: "xml", 
       success: function(xmlData) { 
        if ($("success", xmlData).text() == "true") { 
         // reload table for this trade 
         loadComps(trade); 
        }// TODO create error handler 
       } 
      }); 
     } 

     // function that loads all of the comparisons for a specific trade 
     function loadComps(trade) { 
      $.ajax({ 
       url: "functions/loadPriceSurveyComparisons.php", 
       type: "POST", 
       async: true, 
       data: "trade="+trade, 
       cache: false, 
       dataType: "html", 
       success: function(comps) { 
        $("#current"+trade).html(comps); 
       } 
      }); 
     } 

     // define document.ready function 
     $(document).ready(function() { 
      // load all of the comparisons for each trade 
      <?php 
      foreach ($trades as $trade) { 
       echo "loadComps(\"$trade\");\n"; 
       ?> 
       $("#addComp<?php echo $trade; ?>").click(function(e) { 
        e.preventDefault(); 
        addComp("<?php echo $trade; ?>", $("#albProd<?php echo $trade; ?>").val(), $("#compProd<?php echo $trade; ?>").val()); 
       }); 
       <?php 
      } 
      ?> 
     }); 
+3

Cela me semble parfait. Et j'ai mes spécifications de support. – Marko

+0

Hehe, oui, mais IE8 prouve un mal de tête et apparemment avoir des erreurs sur une page qui ne fait vraiment rien est inacceptable .... – thorne51

+0

D'autres scripts sur la page? – Marko

Répondre

1

message d'erreur de JSLint « Implicite Global » signifie qu'il ya des variables définies qui manquent la définition de « var » ... Cela est particulièrement problématique pour IE8 . Vous devez passer et ajouter "var" aux numéros de ligne indiqués (oui, il y en a beaucoup).

Utilisez-vous un Asset Packager? L'ordre de la liste des actifs dans votre gestionnaire d'éléments peut être en cause ici.

Questions connexes