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 :

Mon programme ne s'exécute que deux fois !


Sujet :

jQuery

  1. #1
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut Mon programme ne s'exécute que deux fois !
    Bonsoir tous le monde,

    Je stagné sur un problème très bizarre et je sollicite donc votre aide si vous permettez

    J'ai codé vite fait un petit truc pour avoir une gallery d'images avec un fadeout donc modal window et tout le tralala, et j'ai donc un fichier gallery.php qui, une fois appelé par ajax, génère donc une gallery de photos en fonction d'un id.
    Pour l'instant je génère rien, j'ai mis tout en statique pour tester, et voici du code:

    index.php: Ici je vous montre uniquement la partie concernant la modal window donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- Gallery-->
    <div id="boxes">
    	<div id="dialog" class="window"></div>
        <div id="mask"></div>
    </div>
    <!-- END Gallery-->
    gallery.php: Là donc c'est le fichier appelé par ajax:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php
     
    $aid = 0;
    if (isset ($_GET['id']))
            $aid = $_GET['id'];
     
    ?>
     
    <script>
    $(document).ready(function(){
    	$("#gallery").SlideShowManager();
    });
    </script>
     
     <!--class="slideshow"-->
    <div id="gallery">
    	    <div class="slide">
    	      <img src="uploads/nexus.png"/>
    	    </div>
     
    	    <div class="slide">
    	      <img src="uploads/nexus.png"/>
    	    </div>
     
    	    <div class="slide">
    	      <img src="uploads/nexus.png"/>
    	    </div>
     
    	    <div class="slide">
    	      <img src="uploads/nexus.png"/>
    	    </div>
    </div>
    Et voici comment l'appel est effectué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    	$('.gallery').click(function(e) {
    		//Cancel the link behavior
    		e.preventDefault();
     
     
    		//Get the screen height and width
    		var maskHeight = $(document).height();
    		var maskWidth = $(window).width();
     
    		//Set heigth and width to mask to fill up the whole screen
    		$('#mask').css({'width':maskWidth,'height':maskHeight});
     
    		//transition effect
    		$('#mask').fadeIn(1000);
    		$('#mask').fadeTo("slow",0.8);
     
    		 //Get the window height and width
    		var winH = $(window).height();
    		var winW = $(window).width();
     
    		var aid = $(this).attr('href');
     
    		$.ajax({
    				  url: "gallery.php?id=" + aid,
    				  cache: false,
    				  success: function(html){
    					$('#dialog').show();
    					$("#dialog").html(html);
    					$("#dialog").css('top',  winH/2-$("#dialog").height()/2);
    					$("#dialog").css('left', winW/2-$("#dialog").width()/2);
    					$("#dialog").fadeIn(2000);
     
    			  }
    		});
     
    	});
    .gallery est une classe attribué à des liens donc pour déclencher l'affichager de la gallerie en question, mais le problème c'est que je clique une fois ca marche, je clique une deuxième ca fontionne, mais à partir de la troisième le javascript de gallery.php n'est plus exécuté (j'ai debogué avec alert()), en effet le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
    $(document).ready(function(){
    	$("#gallery").SlideShowManager();
    });
    </script>
    N'est exécuté que deux fois, ce qui fait que je n'ai mon slideshow que 2 fois, pis après j'ai rien vu que jquery n'a pas été appelée....

    Quelqu'un aurait une petite idée ?
    Je ne pense pas que le code de SlideShowManager() soit nécessaire vu que ca bug uniquement au niveau de gallery.php.

    D'avance merci les gars
    Compil your life guy!
    The Aures Project

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Dans vos extraits de code -- le jQuery est un framework JavaScript et non un langage serveur, le code PHP ou ASP n'a donc pas sa place sur ce forum, il y a un élément d'id="gallery" mais pas d'élément class="gallery".

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Bonjour,

    Il n'y a que 3 lignes de PHP et elles ne font pas partie du problème en effet, je les ai laissés juste pour que les gens voient d'ou pourrait provenir la valeur de "aid".

    Cependant, la class gallery existe dans l'index en fait c'est un simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="gallery"><img src="image.png"></a>
    Quand je clique sur l'image donc ca fonctionne parfaitement, donc à chaque fois j'ai la modal window qui apparait pis ma gallery, sauf que le code jquery (slideshowmanager) n'est exécuté QUE 2 fois et pas moyen de deviner d'ou pourrait provenir l'erreur.

    Pour tester en live: www.woeba.be
    Reproduction:
    1- cliquer sur une image, la gallery apparait, cliquer sur le grisage pour la fermer
    2- Refaire (1) 3 fois
    Merci
    Compil your life guy!
    The Aures Project

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/03/2015, 15h24
  2. Le hook "save_post" s'exécute systématiquement deux fois
    Par sylvain640 dans le forum WordPress
    Réponses: 0
    Dernier message: 23/06/2014, 17h40
  3. [TPW 1.5] Mon programme ne s'exécute pas
    Par WhiteTigerZ dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 23/09/2007, 23h29
  4. Réponses: 2
    Dernier message: 03/02/2007, 00h39
  5. Réponses: 12
    Dernier message: 11/04/2006, 17h36

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