AJAX et effet sur image style Thickbox - HTML/CSS - Programmation
MarshPosté le 01-09-2009 à 17:14:35
Bonjour, je viens demander un coup de main ici .. Parceque je m'acharne sans succès depuis 1 mois sur un site. Il ne me reste que cette dernière épreuve et j'en aurai finis avec lui .. Aussi si une bonne âme passe par la ce serait chouette.
Je vous expose mon souci Je fais le site en SPIP et javascript. le site: http://www.gallarddidierarchitecte.fr Lorsque l'on clique sur un lien du menu, cela charge dans un DIV l'article associé, avec le contenu texte son titre, et la boucle SPIP des photos associé. Or j'aimerai mettre un effet sur les photos en rajoutant la class="thickbox" par exemple ou nyroModal. J'ai instalé les plugins dans SPIP et si je ne m'abuse JQUERY est de base installlé dans SPIP. Et cela fonctionne.
Seulement cela ne marche pas avec les photos que j'appel en javascript vu qu'elle n'existe pas à l'origine. J'ai vu sur le net diverse méthode apparement pour réinitialiser le script de thickbox, notamment des histoire associé à JQUERY mais je n'ai pas trop compris, et en copiant collant le code cela ne marche pas .. ce serait trop simple.
Voici ou je m'en suis arrêter: Voila mon lien qui appel la fonction getarticle sur un onclick (ne faites pas attention au charabia ce sont les boucles SPIP)
La dernière partie est semble t'il d'après ce que j'ai compris une utilisation de jquery. le tb_init est censé faire fonctionner le thickbox mais non... j'ai choisis d'ajouter la class thickbox directement à cet endroit plustot que directement dans le onclick, c'était pour vérifier que cette fonction $(document).ready(function()... fonctionnait bien et c'est le cas; toutes les img que je fais apparraitre dans mon div #box_photo on bien la class thickbox d'ajouté. Pourtant le tb_init ne semble aps faire son travail lui.
Si quelqun à une idée je lui en serai très reconnaissant ... Peu être le tb_init ne marche pas car je devrais faire de l'ajax avec jquey ???¿¿ et utilisé un truc du style $ajax... Mais alors je ne sais pas comment ecrire tout cela pour obtenir le même résultat. A charge de revanche. Certainement pas en javascript.. mais je dessine si besoin
Marsh Posté le 01-09-2009 à 17:14:35
Bonjour,
je viens demander un coup de main ici .. Parceque je m'acharne sans succès depuis 1 mois sur un site.
Il ne me reste que cette dernière épreuve et j'en aurai finis avec lui .. Aussi si une bonne âme passe par la ce serait chouette.
Je vous expose mon souci
Je fais le site en SPIP et javascript. le site: http://www.gallarddidierarchitecte.fr
Lorsque l'on clique sur un lien du menu, cela charge dans un DIV l'article associé, avec le contenu texte son titre, et la boucle SPIP des photos associé.
Or j'aimerai mettre un effet sur les photos en rajoutant la class="thickbox" par exemple ou nyroModal.
J'ai instalé les plugins dans SPIP et si je ne m'abuse JQUERY est de base installlé dans SPIP.
Et cela fonctionne.
Seulement cela ne marche pas avec les photos que j'appel en javascript vu qu'elle n'existe pas à l'origine.
J'ai vu sur le net diverse méthode apparement pour réinitialiser le script de thickbox, notamment des histoire associé à JQUERY mais je n'ai pas trop compris, et en copiant collant le code cela ne marche pas .. ce serait trop simple.
Voici ou je m'en suis arrêter:
Voila mon lien qui appel la fonction getarticle sur un onclick (ne faites pas attention au charabia ce sont les boucles SPIP)
<a href="#" onclick="getarticle('[(#TITRE|texte_script)]','[(#TEXTE|inserer_attribut{'class',article}|texte_script)]',this,'<BOUCLE_photo(DOCUMENTS){id_article}{!par date}{extension==jpg|png|gif}>[<a href=\'[(#URL_DOCUMENT|texte_script)]\' target=\'_blank\' >(#LOGO_DOCUMENT||image_recadre{125,125,center}|inserer_attribut{'class',photo}|inserer_attribut{'alt',[(#TITRE|texte_script)]}|texte_script)</a>]</BOUCLE_photo>')" class="menu_article" >
[(#DESCRIPTIF|PtoBR)]
</a>
Et voici la fonction getarticle:
<script type="text/javascript">
//ARTICLES:
function getarticle(titre,texte,elementthis,photo){
//change la couleur du block article
elementthis.style.backgroundColor="#b8e79f";
contit = document.getElementById("box_titre" );
contit.innerHTML = "";
contit.innerHTML += titre;
contart = document.getElementById("box_article" );
contart.innerHTML = "";
contart.innerHTML += texte;
contpho = document.getElementById("box_photo" );
contpho.innerHTML = "";
contpho.innerHTML += photo;
$(document).ready(function() {
$("#box_photo > *" ).addClass("thickbox" );
$.getScript("http://www.gallarddidierarchitecte.fr/plugins/thickbox2/javascript/thickbox.js" );
tb_init('a.thickbox, area.thickbox, input.thickbox');
});
}
</script>
La dernière partie est semble t'il d'après ce que j'ai compris une utilisation de jquery. le tb_init est censé faire fonctionner le thickbox mais non...
j'ai choisis d'ajouter la class thickbox directement à cet endroit plustot que directement dans le onclick, c'était pour vérifier que cette fonction $(document).ready(function()... fonctionnait bien et c'est le cas; toutes les img que je fais apparraitre dans mon div #box_photo on bien la class thickbox d'ajouté.
Pourtant le tb_init ne semble aps faire son travail lui.
Si quelqun à une idée je lui en serai très reconnaissant ...
Peu être le tb_init ne marche pas car je devrais faire de l'ajax avec jquey ???¿¿ et utilisé un truc du style $ajax... Mais alors je ne sais pas comment ecrire tout cela pour obtenir le même résultat.
A charge de revanche. Certainement pas en javascript.. mais je dessine si besoin
Paul.
Graphiste illustrateur webdesigner
http://www.cas-p.net