2013-09-30 2 views
0

Je souhaite remplacer une fonction jQuery dans une balise de script secondaire. J'ai cette fonction jQuery dans ma mise en page juste avant la balise </body>.jQuery: Utilisation de la fonction replaceWith

<div id="white_backstretch"> 
    <script> 
    $.backstretch("/body-bg.jpg"); 
    </script> 
</div> 

Sur une autre page (page show) J'ai:

<script> 
    $('#white_backstretch').replaceWith("<script>" + $.backstretch(<%= @white_label.logo %> + "</script>"); 
</script> 

Ici, je suis en train de remplacer l'actuel

<script>$.backstretch("/body-bg.jpg");</script> 

avec

<script>$.backstretch(<%= @profile.logo %></script> 

de sorte que lorsque page différente vient l'image de fond sera changement. Mais le problème que je suis confronté est:

<script> 
    $('#white_backstretch').replaceWith("<script>" +  $.backstretch(/uploads/white/logo/4/image14.png) + "</script>"); 

Uncaught SyntaxError: jeton inattendu ILLÉGALE

La première extrémité </script> étiquette à l'intérieur remplacer la fonction est prise comme fin du script pour «); » < - jeté comme erreur de jeton inattendue

Donc, il sera utile si quelqu'un me dit comment remplacer une méthode jQuery dans une balise de script avec une autre méthode jQuery? (cette méthode devrait également être dans la balise de script puisque je veux utiliser la méthode replaceQith jQuery dans un fichier html)

Répondre

1

$.replaceWith va simplement remplacer et ne pas exécuter le javascript. Même si vous êtes capable de le faire fonctionner, il ne servira à rien.

Je vous suggère de le faire d'une autre manière, en utilisant la fonction remplaçant

<div id="white_backstretch"> 
    <script> 
     function replace() { 
      $.backstretch("/body-bg.jpg"); 
     }   
    </script> 
</div> 

Et dans votre page show

document.write("<script>function replace(){$.backstretch("<%= @profile.logo %>");} </script>") 

et appeler replace() en charge de la page ou whereever il convient.

Questions connexes