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

JavaScript Discussion :

changement de div annule rel ?


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut changement de div annule rel ?
    Bonjour à tous, (ou plutôt bonsoir, vu l'heure).

    J'ai un gros problème sur un mini code que j'ai là.

    En fait, voici le topo : j'ai un lien d'une image qui, en cliquant dessus, affiche l'image en utilisant un rel, autrement dit un fichier .js.

    Lorsque ma page se charge, j'appelle une première fois une fonction javascript interne à mon html qui affiche une première <div>.

    Donc, jusque là, tout va bien, mon image se charge normalement, grâce au rel avec l'effet attendu.

    par contre, lorsque je clique sur "page suivante", ce qui a pour effet d'afficher une autre <div> au même endroit (sans recharger la page, j'ai fait visibility:hidden), mais qui contient exactement le même code (sauf l'image et le libellé appriori bien sûr), hé ben quand je clique, il m'affiche l'image, et pas l'effet du rel, cité au dessus.

    Je sais que ça a l'air compliqué (enfin, pour moi ça l'est), c'est pourquoi, j'ai fait un petit fichier rar de 8Ko avec mon source simplifier au maximum.

    Est ce que vous pouvez m'aider ?

    Ps : j'ai mis mon ficher rar en pièce jointe, merci d'avance ^^'
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Personne n'a de solution ?

    Voici le site complet (pas simplifier comme dans le rar), mais pour vous donner une apperçu de l'erreur, cliquez sur "Japon 2006 - Part 1", puis testez une image, ensuite, cliquez sur "page suivante", et là testez une image. ça ne fonctionne plus

    http://www.romanops.com/portfolio/

  3. #3
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Petit up.
    Quelqu'un peut m'aider ?

  4. #4
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    désolé de vous soliciter une fois de plus, mais j'arrive vraiment à ne rien faire.

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Romanops
    désolé de vous soliciter une fois de plus, mais j'arrive vraiment à ne rien faire.
    A mon avis, c'est ça qui ne marche pas:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panel.innerHTML = document.getElementById(panName).innerHTML;

    innerHTML, c'est sale quand tu as manipulé la page subtilement avec du DOM. Ca ne m'etonne pas que ça ne copie pas les gestionnaires d'évenements.

    Essaye un:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		function panel(panName)
    		{
    			var panel = document.getElementById('test');
    			while (panel.childNodes.length>0) {
    				panel.removeChild(panel.childNodes[0]);
    			}
    			with(document.getElementById(panName)) {
    				for (var i=0; i<childNodes.length; i++) {
    					panel.appendChild(childNodes[i].cloneNode('true'));
    					panel.lastChild.onclick = childNodes[i].onclick;
    				}
    			}
    		}
    Ca marche

    Mais la question (aux spécialistes JS), c'est pourquoi alors que je fais une copie DOM propre à coup de cloneNode dois-je aussi salement copier le gestionnaire d'évenement (onclick). Quelle est la raison? Sans ça ne marche pas....

    Sinon, pour Romanops, ça serait quand même bien plus simple avec des display none sur tes 3 divs et les afficher au fur et à mesure, plutot que de copier leur contenu....

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par denisC
    Mais la question (aux spécialistes JS), c'est pourquoi alors que je fais une copie DOM propre à coup de cloneNode dois-je aussi salement copier le gestionnaire d'évenement (onclick). Quelle est la raison? Sans ça ne marche pas....
    Hi, ca on se le demande
    Qu'y a-t-il de plus idiot qu'un navigateur internet

    Je ne m'étais jamais rendu compte du problème, mais en fait, en y réfléchissant bien : Il fait EXACTEMENT ce que tu lui demande.
    Et qu'est-ce que tu lui demande ? De copier un noeud XML et tous ses noeds fils, ainsi que leurs attributs respectifs.
    Ou est-il écrit qu'il faut copier les handlers (eventListeners) ?
    Bon c'est un peu tiré par les cheveux mais que veux-tu

    La solution de contournement (j'ai pas testé mais bon) est enfait assez simple...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    copiedNode=nodeToCopy.cloneNode(true);
    for (key in copiedNode) {
       if (key.substr(0,2)=="on" && this.getAttribute(key)) {
          this[key]=function() {
              eval(this.getAttribute(key));
          }
       }
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2011, 03h40
  2. Relancer le script quand changement de DIV
    Par brisso dans le forum jQuery
    Réponses: 23
    Dernier message: 29/11/2010, 13h55
  3. Relancer le script quand changement de DIV
    Par brisso dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/11/2010, 18h24
  4. div absolute / relative
    Par kataboy dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 10/07/2009, 18h07
  5. Changement de div au passage de la souris
    Par ganjaaw dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/10/2008, 09h22

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