2010-11-22 10 views
2

Ainsi, IE me donne des problèmes, surprise, surprise ...jquery erreur non spécifiée IE

Je crée une boîte de dialogue jquery (DIV3) et puis à l'intérieur div3, i afficher une table (DIV4). Cela fonctionne très bien dans Firefox. Cependant, dans IE, il n'affiche pas div 3, la fenêtre contextuelle. Au lieu de cela, il renvoie l'erreur "Erreur non spécifiée" et n'affiche que div4, la table. Le code est ci-dessous ...

Je crois que l'erreur est quelque part dans l'instruction else.

Toute aide est appréciée. Merci!

function displayMid(count) { 
     var x = $("#Pid"+count).text(); 
     var y = $("#PidSeries"+count).text(); 
     //alert(x); 
     if (x == 0) { 
      return; 
     } 
     else if (y == null || y == " " || y == "") { 
      $("#inputDiv3").html("").dialog('destroy'); 
      $("#inputDiv3").dialog({ 
       title: 'You must add the Product before you can assign catalogs!!!', 
       width: 500, 
       modal: true, 
       resizable: false, 
       buttons: { 
        'Close': function() { $(this).dialog('close'); } 
       } 
      }); 
     } 
     else { 
     $("#inputDiv3").dialog('destroy'); 
     $("#inputDiv3").html('<div style="height:300px;overflow-y:scroll;"><div id="inputDiv4"></div></div>').dialog({ 
      title: 'Catalog for ' + $("#PidTitle"+count).text(), 
      width: 500, 
      modal: true, 
      resizable: false, 
      open: $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) { 
         $("#inputDiv4").html(o); 
        }), 
      buttons: { 
       'Close': function() { $(this).dialog('close'); } 
      } 
     }); 

     } 

    } 
+0

qu'en est-il chrome travaille-t-il sur chrome – kobe

+0

Yup. Fonctionne bien en chrome ... –

Répondre

4

Je ne sais pas à ce sujet, mais je pense que vous devriez envelopper l'appel ajax pour open: dans une fonction anonyme.

open: function(){ 
      $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) { 
       $("#inputDiv4").html(o); 
      }); 
}, 
+0

Ça l'a fait! Merci! Pouvez-vous expliquer pourquoi cela l'a corrigé? –

+0

pour ouvrir vous devez fournir une fonction de rappel. Cela peut être soit le nom d'une fonction ou une fonction() {// quelque chose} comme ci-dessus. Cela ne fonctionnerait pas par exemple: somefunction() mais open: somefunction. Dans le premier cas, la fonction est appelée immédiatement au lieu de l'ouverture de la boîte de dialogue. –

1

Généralement IE indique un numéro de ligne pour l'erreur. Vous avez beaucoup de choses là-dedans, essayez de décomposer chaque partie dans sa propre déclaration sur une ligne séparée. Vous pouvez ensuite lancer des journaux de console entre chaque ligne.

En général, j'aime créer une nouvelle variable et l'affecter à la propriété, ou créer une nouvelle fonction locale si la propriété est une fonction.

0

Le problème semble être dans la section «Affaires». Peut-être essayer emballage que dans une fonction anonyme comme ceci:

 $("#inputDiv3").html('<div style="height:300px;overflow-y:scroll;"><div id="inputDiv4"></div></div>').dialog({ 
      title: 'Catalog for ' + $("#PidTitle"+count).text(), 
      width: 500, 
      modal: true, 
      resizable: false, 
      open: function() { 
         $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) { 
          $("#inputDiv4").html(o); 
         }); 
      }, 
      buttons: { 
       'Close': function() { $(this).dialog('close'); } 
      } 
     }); 

Sinon, le « get » immédiatement le feu plutôt que lorsque vous ouvrez réellement la boîte de dialogue.

Questions connexes