IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

ajout de class + lightbox (Pirobox)


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 186
    Par défaut ajout de class + lightbox (Pirobox)
    Bonjour à tous, ou plutôt re-bonjour...
    Me voilà avec un petit soucis que je ne comprend absolument pas.
    Sur mon blog wordpresse, j'utilise un effet lightbox grâce à pirobox.
    Jusque là tout va bien. J'ai fait un petit script jQuery que voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
         <script type="text/javascript">  
              $(document).ready(function($) {
                $("a[href$='.jpg'], a[href$='.jpeg'], a[href$='.gif'], a[href$='.png']").each(function(){
                    if (!$(this).hasClass('pirobox')) {
                        $(this).addClass('pirobox');
                    }
                });
            })
        </script>
    Qui me permet d'ajouter la class pirobox à toutes mes images dont l'url pointe vers les images en questions...

    Le hick, c'est qu'avec mon script, la class est bien ajouté dans mon image, mais rien ne se passe lorsque je clique dessus. En gros le lien pointe bien vers l'image mais sans effet lightbox.
    Le plus incompréhensible c'est qu'en écrivant class="pirobox" manuellement lors de l'édition de mon article, ça fonctionne !

    Voilà un exemple sur l'article que je viens d'écrire : article

    En regardant la source de l'image d'entête vous vérez bien class="pirobox hovering" (hovering étant pour l'effet d'opacité blanc), dans ce cas, la classe est ajouté en php lors de la création de page.

    Dans l'autre cas, sur l'image au coeur de l'article, vous verrez également class="pirobox", cette fois ajouté en js mais rien ne se passe...

    Je suis un peu perdu , des éclairages ou des réponses à des cas similaires pourraient m'aider.
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 186
    Par défaut
    je m'auto-répond...
    J'ai finalement trouvé le problème.
    La fonction pirobox n'était éxécutée qu'une fois lors du chargement de la page et mon script injectait la class alors que pirobox était déjà éxécuté...du coup. Ba la class était bien là mais ça ne fonctionnait pas.
    Après beaucoup de tests de repositionnement de mes différentes lignes de code dans ma page. J'ai finalement positionné mon petit script juste avant que que la fonction pirobox soit éxévutée. Ainsi, la class est créée avant que pirobox ne crée les différentes tables html pour afficher les lightbox.
    Je ne sais pas si c'est claire...mais ça fonctionne.

    La fin de pirobox.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    ...
    ...
    $("a[href$='.jpg'], a[href$='.jpeg'], a[href$='.gif'], a[href$='.png']").each(function(){
    				if (!$(this).hasClass('pirobox')) {
    					$(this).addClass('pirobox');
    				}
    			});
    		start_pirobox();
    	}
    })(jQuery);

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    voir aussi live() , on() ou delegate() ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 186
    Par défaut
    Merci pour ton conseil, bien que je ne m'y connaisse que très peu et je ne penses pas que les fonctions dont tu parles me concernent ici.

    Dans la mesure où pirobox.js est exécuté une fois seulement au chargement de la page. Il n'est déclencher par aucun évènement.

    Je m'explique. Pirobox va ajouter dans le DOM les différentes balises nécessaires à l'affichage de la lightbox puis les cacher. C'est seulement lors du click sur l'image que l'évènement "click" pour le coup intervient et affiche les différents éléments préalablement générés puis cachés.

    Si j'ai bien compris, live() et on() permettent de liés des éléments à une fonctions même si ils sont générés après l’exécution de cette dernière, hors là, c'est la fonction qu'il aurait fallu exécuter après la création des éléments.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    sisi justement ce sont des methodes qui permettent de faire heriter aux elements crées dynamiquement après le ready, les evenements attibués dans le ready
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 186
    Par défaut
    Et bien alors je n'ai pas bien compris. Si tu pouvais me rediriger vers un exemple ou autre je suis preneur. Je n'ai pas trouvé d'explication ni de démonstration.
    Merci

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Nouveau candidat au Club
    Homme Profil pro
    blogueur( j'essaye !!!) pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : blogueur( j'essaye !!!) pro
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut lightbox aweber...
    Bonjour,
    J'ai une question dont je n'ai pas trouvé la réponse après 2h (au moins !!) de rechercher sur internet....
    Je voudrais intégrer une light box Aweber sur mon blog wolrdpress héberger par ovh.
    Dans la formation initiale, il m'était indiqué que je devais mettre la ligne de commande dans l'éditeur sur la "page" header après

    <body class="costum">

    Or il s'avère qu'en faisant ainsi, la fenêtre s'ouvre chaque fois que l'on veut ouvrir une page sur le blog ce qui n'est pas très très pratique vous en conviendrez ;-)
    Après vérification auprès de Aweber, ils m'ont dit de la mettre sur la "page" index.php mais cela ne fonctionne pas du tout.
    Auriez vous la gentillesse de me dire dans quel endroit de l'éditeur je dois mettre cette ligne de commande pour que cette light box s'ouvre à l'ouverture du blog (pour un visiteur bien sur), une seule fois, et surtout à quel endroit de la page php.
    Merci

    Les relations humaines positives
    Pour ceux qui ont des problèmes dans leur vie, leurs relations, leurs rêves et qui ne sont pas satisfait d'eux même...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] [SRC] Ajout de classe au tutoriel d'Olivier Lance "modification inline de données"
    Par dream_of_australia dans le forum Contribuez
    Réponses: 8
    Dernier message: 27/10/2014, 19h25
  2. ajouter des classes à une app déployée
    Par barhili04 dans le forum C#
    Réponses: 4
    Dernier message: 25/05/2007, 12h57
  3. ajouter une classe dans un projet
    Par bonbino dans le forum C++Builder
    Réponses: 4
    Dernier message: 23/10/2006, 14h35
  4. Ajouter une class CSS a une nouvelle cellule
    Par Arfigado dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2006, 10h08
  5. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo