2013-07-31 2 views
0

Besoin d'un peu d'aide avec un peu de jQuery. Im un peu d'un noob jQuery sage.jquery wordpress modèle chemin

Je suis mon template_dir dans un var:

$('#someID').click(function() { 
    var templateDir = '<?php bloginfo("template_directory") ?>'; 
    if(autoStart) { 
     $(this).html('<img src=" 'TEMPLATEDIR HERE' /images/pauze-play.png" />'); 
    } else { 
     $(this).html('<img src=" 'TEMPLATEDIR HERE' /images/pauze-play.png" />'); 
    } 
    autoStart = !autoStart; 
    $('#mainSlider.royalSlider').royalSlider('toggleAutoPlay'); 
}); 

Je l'ai fait quelques recherches stackoverflow et essayé de le comprendre, mais ce que je fais cela ne fonctionne pas en raison des compétences qui manquent, mais je pense qu'il est assez simple .

Je pensais que c'était quelque chose comme ceci:

<img src=" 'templateDir +' /images/pauze-play.png" />' 

Mais ...

Merci à l'avance

/Paul

+0

Vous essayez d'inclure la technologie côté serveur dans javascript client. Cela ne va pas fonctionner. – Tdelang

+0

alors http://stackoverflow.com/questions/2856600/path-to-wordpress-template-directory-inside-jquery est une mauvaise pratique? – Kortschot

Répondre

1

Le poste de Danyo code fonctionnerait très bien, mais sur la route que vous avez choisi de définir TEMPLATEDIR comme une variable javascript vous auriez:

$(this).html('<img src="' + templateDir + '/images/pauze-play.png" />'); 

Remarque: il n'y a pas d'espace entre "'et' /. Cela pourrait avoir été où vous avez mal tourné.

Vous pouvez également déclarer templateDir en tant que variable globale. donc vous auriez:

var templateDir = '<?php bloginfo("template_directory"); ?>'; 
jQuery('.selector').click(function(){ ... 
+0

oui merci l'homme, génial! – Kortschot

0

Peut-être que vous pouvez mettre la variable dans une période cachée , placé quelque part avec php, comme ceci:
<span class='hidden mythemepath'>yourtheme</span>, alors vous pouvez l'attraper avec javascript:
var mytheme = $(".mythemepath").text();

0

Vous rendre compliqué. Je ne comprends pas pourquoi vous assignez le répertoire de modèle à un var quand vous n'appelez pas l'image dans javascript?

ce qui suit fonctionne très bien:

<img src="<?php bloginfo("template_directory") ?>/images/pauze-play.png" /> 

EDIT

<script> 
$('#someID').click(function() { 
    if(autoStart) { 
     $(this).html('<img src="<?php bloginfo("template_directory") ?>/images/pauze-play.png" />'); 
    } else { 
     $(this).html('<img src="<?php bloginfo("template_directory") ?>/images/pauze-play.png" />'); 
    } 
    autoStart = !autoStart; 
    $('#mainSlider.royalSlider').royalSlider('toggleAutoPlay'); 
}); 
</script> 
+0

Eh bien, il doit échanger les images de pauze à jouer. Le code que vous fournissez est déjà prêt à être utilisé dans le fichier modèle. – Kortschot

+0

alors pourquoi ne pas le faire comme abobe, j'ai édité ma réponse – danyo