2011-06-01 2 views
0

Encore une fois, un autre de ces erreurs ..chaîne non terminée

J'ai essayé de chercher autour de régler cette question avant de demander, mais n'a pas pu trouver tout ce qui pourrait résoudre ce problème.

J'ai :(Mise à jour)

<script type="text/javascript"> 
    $(function(){ 
     $('.episodes').live('click',function(){ 
      var id = $(this).attr('id').replace('episode_',''), 
      width = 730, 
      height = 645; 

      if(id == 3){ 
       width = 635; 
       height = 790; 
      }     

      ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true}); 
     }); 
    }); 
</script> 

J'ai essayé d'échapper à la "texte \/javascript" et le < \/script>, mais il va soit ne fonctionne plus du tout et ne montre plus l'erreur car il ne la reconnaîtra pas comme une déclaration javascript ou il continuera à lancer l'erreur. Firebug dit que le problème est: var id = $(this).attr('id').replace('episode_',''),, mais je ne vois pas où cela pourrait être un problème. Je pensais échapper le / dans la méthode de création en bas, mais je ne pense pas que cela ferait une différence parce qu'il montre que l'erreur est au sommet.

Merci!

(Mise à jour) J'ai essayé toutes les réponses avec le problème du point-virgule, et cela n'a pas fonctionné. N'a pas eu d'impact sur quoi que ce soit. D'autres idées? Je colle réellement ceci dans un CMS et il passe par le SQL et puis la sortie dans mon article. Je ne vois pas pourquoi cela causerait un problème, mais je suppose que c'est une autre chose à considérer.

MISE À JOUR AVEC FIX L'erreur était l'utilisation des guillemets simples. A dû changer tous les guillemets simples à une double citation. Apparemment, c'est quelque chose que vous devez faire lorsque vous l'insérez dans la base de données.

Code final est:

<script type="text/javascript"> 
    $(function(){ 
     $(".episodes").live("click",function(){ 
      var id = $(this).attr("id").replace("episode_",""), 
      width = 730, 
      height = 645; 

      if(id == 3){ 
       width = 635; 
       height = 790; 
      }     

      ColdFusion.Window.create("Episode_"+id,"","/landing_pages/superhero/episode"+id+".cfm",{width:width,height:height,center:true,draggable:false,resizable:false,modal:true}); 
     }); 
    }); 
</script> 
+0

Pouvez-vous fournir une erreur plus complète? Message complet et trace de pile si possible. – Jaymz

+0

Le problème peut être une autre balise avec un guillemet double non fermé autour d'un attribut qui se produit avant le script. –

+0

J'ai du mal à comprendre ce que vous demandez. Pourquoi voudriez-vous échapper 'text/javascript'? C'est une constante standard. L'ajout de caractères n'échappera à rien; il indiquera simplement au navigateur que ce n'est pas JavaScript -> le navigateur ignorera l'élément 'script' avec un contenu inconnu. –

Répondre

4

L'erreur signifie que l'une des guillemets simples dans $('.episodes').live('click',function(){ n'est pas une seule citation, mais quelque chose d'autre (probablement une citation de retour). Essayez de tous les remplacer par des guillemets doubles (") car l'encodage ASCII ne contient qu'un guillemet double mais trois guillemets simples différents (''`).

+0

Merci, je vais essayer maintenant –

+0

C'est exactement ce que l'erreur était! Merci mec –

5

essayer d'utiliser des points-virgules:

<script type="text/javascript"> 
     $(function(){ 
      $('.episodes').live('click',function(){ 
       var id = $(this).attr('id').replace('episode_',''), 
       var width = 730, 
       var height = 645; 

       if(id == 3){ 
        width = 635, 
        height = 790; 
       }     

       ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true}) 
      }); 
     }); 
    </script> 
+0

bonne réponse. @ Michael, je crois que vous vous êtes trompé en pensant que vous remplissiez un tableau, et que vous n'écriviez pas une fonction régulière. Été là fait cela. –

+0

Haha, j'ai dû rire quand j'ai vu ça - j'ai complètement manqué l'utilisation de virgules au lieu de points-virgules à la fin. +1 – Jaymz

+2

en fait, il suffirait d'avoir un point-virgule après 'height' dans le code original. Utiliser une virgule pour séparer les déclarations de variables est très bien. – jAndy

2

Le problème existe dans

var id = $(this).attr('id').replace('episode_',''), 
    width = 730, 
    height = 645 

parce qu'il a besoin d'un point-virgule à la fin, et non une virgule.

var id = $(this).attr('id').replace('episode_',''), 
    width = 730, 
    height = 645; 

va de même pour tout le reste à l'intérieur de

if (id == 3) {... 
+1

Non, il ne devrait pas y avoir de point-virgule, c'est une liste de déclarations séparées par des virgules. Il devrait y avoir un point-virgule à la fin de la déclaration, c'est-à-dire après les trois déclarations. – Guffa

+0

Raté ça, merci Guffa: corrigé. – zellio

2

votre syntaxe est erronée, javascripts utilise un; de mettre fin à une déclaration

des thats la bonne solution

$('.episodes').live('click', function() { 
    var id = $(this).attr('id').replace('episode_', ''); 
    var width = 730; 
    var height = 645; 
    if (id == 3) { 
     width = 635; 
     height = 790; 
    } 
    ColdFusion.Window.create('Episode_' + id, '', '/landing_pages/superhero/episode' + id + '.cfm', { width: width, height: height, center: true, draggable: false, resizable: false, modal: true }); 
}); 

Modifier

mon mauvais, votre syntaxe avait raison aussi.

+1

Vous avez modifié les déclarations de 'width' et' height' à des affectations seulement, ce qui modifie leur portée. – Guffa

+0

Je ne pense pas que les gens comprennent la déclaration de variables Javascript ces jours-ci .. –

0

Lorsque je vérifie le code dans JsLint, il ne se plaint pas des chaînes non terminées, seulement que vous avez omis les points-virgules à la fin de chaque déclaration. Cela pourrait cependant avoir des conséquences inattendues, donc cela pourrait très bien être la raison du message d'erreur.

des points-virgules Mettez à la fin och chaque déclaration:

<script type="text/javascript"> 
    $(function(){ 
    $('.episodes').live('click',function(){ 
     var id = $(this).attr('id').replace('episode_',''), 
     width = 730, 
     height = 645; 

     if(id == 3){ 
     width = 635; 
     height = 790; 
     }     

     ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true}); 
    }); 
    }); 
</script> 
+0

Je viens d'essayer et c'est toujours la même erreur. –

+0

@Michael Stone: Alors votre erreur est quelque part en dehors du code que vous avez montré. Ce code ne peut tout simplement pas produire cette erreur sur lui-même. – Guffa

Questions connexes