2010-11-28 4 views
0

Je suis en train de mettre en œuvre le code suivant dans un document html:Embedding Javascript dans le document html

$(function() { 

       $.ajax({ 
       type: "GET", 
       url: "/projects/img/Bathurst/PhotoGallery.xml", // location of your gallery's xml file 
       dataType: "xml", 
       success: function(xml) { 


        $(xml).find('img').each(function() { 

         var location = '/projects/img/Bathurst/'; // relative path to the directory that holds your images 
         var url = $(this).attr('src'); 
         var alt = $(this).attr('alt'); 

         $('<li></li>').html('<a href="'+location+''+url+'" rel="shadowbox[gallery]"><img class="thumb" src="'+location+''+url+'" alt="'+alt+'" title="'+alt+'" /></a>').appendTo('#gallery-ul'); 


        }); 
        $('<script type="text/javascript"></script>').html('Shadowbox.clearCache(); Shadowbox.setup();').appendTo('#photo-gallery'); 
       } 


      }); 
}); 

Le code fonctionne parfaitement quand je l'utilise dans un fichier .js externe, mais je ne peux pas le faire fonctionner quand je l'implémente, cela se traduit par une erreur dans le code.

II'm je manque quelque chose et dos quelqu'un a une suggestion à ceci? La raison pour laquelle je dois l'implémenter, au cas où on se le demanderait, c'est que je construis une webapp personnalisée et que la ligne "/projects/img/Bathurst/PhotoGallery.xml" et "/ projects/img/Bathurst /" est variables dynamiques

Toutes les réponses sont très appréciées! :)

+0

Quelles sont les erreurs que vous voyez? – Jan

+2

S'il vous plaît définir "il rend juste" et "erreur dans le code." Comment, exactement, échoue-t-il? Aussi, comment l'intégrez-vous dans le document? Veuillez fournir juste assez d'encapsulation HTML pour reproduire le problème. – David

+0

Vous devriez apprendre les bases de Javascript. – SLaks

Répondre

2

La ligne problématique ($('<script type="text/javascript">...) est un moyen convluted et inutilement compliqué à exécuter deux lignes de Javascript.

Vous devez le remplacer par des appels de méthode simples. (Shadowbox.clearCache(); Shadowbox.setup();)

+0

Ok, donc le code correct serait alors $ (Shadowbox.clearCache(); Shadowbox.setup();). appendTo ('# photo-gallery ');? – iamchriswick

+0

@Prodac: _Non, il wouldn't. Savez-vous ce que les deux lignes sont? – SLaks

+0

@ SLaks: Non je ne sais pas, c'est pourquoi j'ai posté la question en premier lieu. m jolie novice quand il s'agit de js ... – iamchriswick

2

Vous ne pouvez pas avoir un </script> à l'intérieur d'un script. changement

$('<script type="text/javascript"></script>') 

à

$('<script type="text/javascript"><\/script>') 
+0

Non, il suffit de s'en débarrasser. – SLaks

+0

@SLaks: Quand vous dites "débarrassez-vous de", voulez-vous dire enlever '' de $ (''). html ('Shadowbox.clearCache(); Shadowbox.setup();'). appendTo ('# galerie-photo'); ??? – iamchriswick

+0

@Prodac, je pense que @SLaks signifie utiliser $ ('script type = "text/javascript" />') 'sans la balise de fermeture. http://api.jquery.com/jQuery/ dit « Sinon, jQuery permet la syntaxe de balise XML comme (avec ou sans espace avant la barre oblique): ' $ (''); ' –

Questions connexes